Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/src/hal/components.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ Limit its slew rate to less than maxv per second. Limit its second derivative to
| link:../man/man9/mux2.9.html[mux2] |Select from one of two input values (multiplexer). ||
| link:../man/man9/mux4.9.html[mux4] |Select from one of four input values (multiplexer). ||
| link:../man/man9/mux8.9.html[mux8] |Select from one of eight input values (multiplexer). ||
| link:../man/man9/mux_generic.9.html[mux_generic] | Select one from several input values (multiplexer). ||
| link:../man/man9/mux_generic.9.html[mux_generic] | Select one from several inputs and forwards it to a single output (multiplexer). ||
| link:../man/man9/near.9.html[near] |Determine whether two values are roughly equal. ||
| link:../man/man9/offset.9.html[offset] |Adds an offset to an input, and subtracts it from the feedback value. ||
| link:../man/man9/safety_latch.9.html[safety_latch] |latch for error signals ||
Expand Down
4 changes: 4 additions & 0 deletions docs/src/man/man1/halui.1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,8 @@ _N_ = joint number (0 ... num_joints-1)

=== Joint jogging (*N* = joint number (0 ... num_joints-1))

Joint jogging is possible in unhomed state except for joints having a negative HOME_SEQUENCE value. See Section "Homing Configuration" of the documentation.

*halui.joint.jog-deadband* float in::
pin for setting jog analog deadband (jog analog inputs smaller/slower than this (in absolute value) are ignored).
*halui.joint.jog-speed* float in::
Expand Down Expand Up @@ -325,6 +327,8 @@ _L_ = axis letter (xyzabcuvw)

=== Axis Jogging

This is only possible in homed state.

_L_ = axis letter (xyzabcuvw)

*halui.axis.jog-deadband* float in::
Expand Down
31 changes: 24 additions & 7 deletions docs/src/man/man9/mux_generic.9.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,45 @@

== NAME

mux_generic - choose one from several input values
mux_generic - select one from several inputs and forwards it to a single output

== SYNOPSIS

**loadrt mux_generic config="**bb8,fu12....**"**
**loadrt mux_generic config="**__<input_type><output_type><size>__[,__<input_type><output_type><size>__],...**"**

Types: **b** = bit, **f** = float, **s** = signed integer, **u** = unsigned integer

Example: **loadrt mux_generic config="**bb8,fu12**"**

== FUNCTIONS

**mux-gen.**_NN_ Depending on the data types can run in either a floating point or non-floating point thread.

== PINS

mux-gen.NN.sel-bit-00 ───────────────────┐
... ─────────────────┐ │
mux-gen.NN.sel-bit-BB ───────────────┐ │ │
mux-gen.NN.sel-int ─────────────┐ │ │ │
┌───────┴─┴─┴─┴───────┐
mux-gen.NN.in-[bit/float/s32/u32]-00 ─────┤ ─────o \ │
... ─────┤ ─────o o───── ├───── mux-gen.NN.out-[bit/float/s32/u32]
mux-gen.NN.in-[bit/float/s32/u32]-MM ─────┤ ─────o │
│ │
mux-gen.NN.suppress-no-input ─────┤ │
mux-gen.NN.debounce-us ─────┤ │
└─────────────────────┘

**mux-gen**.__N__.**suppress-no-input** bit in::
This suppresses changing the output if all select lines are false.
This stops unwanted jumps in output between transitions of input but makes in00 unavailable.
**mux-gen**.__N__.**debounce-us** unsigned in::
sets debounce time in microseconds, e.g. 100000 = a tenth of a second.
The selection inputs must be stable this long before the output
changes. This helps to ignore 'noisy' switches.
**mux-gen**.__N__.**sel-bit-**__MM__ bit in (M=0..N)::
**mux-gen**.__N__.**sel-bit-**__BB__ bit in (BB=0..bit width of _size_)::
**mux-gen**.__N__.**sel-int** unsigned in::
Together, these determine which **in**__N__ value is copied to *output*.
Together, these determine which **in**__M__ value is copied to *output*.
The bit pins are interpreted as binary bits, and the result is simply
added on to the integer pin input. It is expected that either one or
the other would normally be used. However, the possibility exists to
Expand All @@ -32,14 +49,14 @@ mux_generic - choose one from several input values
component is an integer power of two. This component (unlike mux16)
does not offer the option of decoding Gray-code, however the same
effect can be achieved by arranging the order of the input values to suit.
**mux-gen**.__N__.**in-**[**bit**/**float**/**s32**/**u32**]**-**__MM__ variable-type in::
The possible output values that are selected by the selection pins.
**mux-gen**.__N__.**out-**[**bit**/**float**/**s32**/**u32**] variable-type out::
Follows the value of one of the **in**__N__ values according to the
selection bits and/or the selection number. Values will be
converted/truncated according to standard C rules. This means, for
example that a float input greater than 2147483647 will give an S32
output of -2147483648.
**mux-gen**.__N__.**in-**[**bit**/**float**/**s32**/**u32**]**-**__MM__ variable-type in::
The possible output values that are selected by the selection pins.

== PARAMETERS

Expand All @@ -57,7 +74,7 @@ components. It allows the creation of arbitrary-size multiplexers (up to
output pins. The configuration string is a comma-separated list of
code-letters and numbers, such as "bb4,fu12". This would create a
4-element bit-to-bit mux and a 12-element float-to-unsigned mux. The
code letters are b = bit, f = float, s = signed integer, u = unsigned
code letters are **b** = bit, **f** = float, **s** = signed integer, **u** = unsigned
integer. The first letter code is the input type, the second is the
output type. The codes are not case-sensitive. The order of the letters
is significant but the position in the string is not. Do not insert any
Expand Down
Loading