282 #define PIN_ISINPUT(pin) (pin < Outputs)
283 #define PIN_ISOUTPUT(pin) (pin >= Outputs && pin < Bidirectional)
284 #define PIN_ISBIDIRECTIONAL(pin) (pin >= Bidirectional)
291 PROGMEM
static const pin_name_t pin_names[] = {
298 { .function =
Input_EStop, .name =
"Emergency stop" },
334 { .function =
Input_Aux0, .name =
"Aux in 0" },
335 { .function =
Input_Aux1, .name =
"Aux in 1" },
336 { .function =
Input_Aux2, .name =
"Aux in 2" },
337 { .function =
Input_Aux3, .name =
"Aux in 3" },
338 { .function =
Input_Aux4, .name =
"Aux in 4" },
339 { .function =
Input_Aux5, .name =
"Aux in 5" },
340 { .function =
Input_Aux6, .name =
"Aux in 6" },
341 { .function =
Input_Aux7, .name =
"Aux in 7" },
342 { .function =
Input_Aux8, .name =
"Aux in 8" },
343 { .function =
Input_Aux9, .name =
"Aux in 9" },
510 { .function =
Input_RX, .name =
"RX" },
620 #define PINMODE_NONE (0)
621 #define PINMODE_OUTPUT (1U<<1)
623 #define PINMODE_OD (1U<<2)
625 #define PINMODE_PULLUP (PullMode_Up<<3)
626 #define PINMODE_PULLDOWN (PullMode_Down<<3)
627 #define PINMODE_ANALOG (1U<<11)
628 #define PINMODE_PWM (1U<<12)
629 #define PINMODE_PWM_SERVO (1U<<13)
669 #define XBAR_SET_CAP(cap, mode) { cap.mask = mode.mask; cap.claimable = !mode.claimed; }
670 #define XBAR_SET_DIN_INFO(pin, pin_id, src, cfg_fn, get_val_fn) { \
672 pin.mode = src.mode; \
674 pin.cap.invert = On; \
675 pin.cap.claimable = !src.mode.claimed; \
676 pin.function = src.id; \
677 pin.group = src.group; \
679 pin.port = (void *)src.port; \
680 pin.description = src.description; \
681 pin.config = cfg_fn; \
682 pin.get_value = get_val_fn; \
684 #define XBAR_SET_DOUT_INFO(pin, pin_id, src, cfg_fn, get_val_fn) { \
686 pin.mode = src.mode; \
687 pin.cap.mask = src.mode.mask; \
688 pin.cap.invert = On; \
689 pin.cap.claimable = !src.mode.claimed; \
690 pin.function = src.id; \
691 pin.group = src.group; \
693 pin.port = (void *)src.port; \
694 pin.description = src.description; \
695 pin.config = cfg_fn; \
696 pin.get_value = get_val_fn; \
820 static inline bool xbar_stepper_state_get (
stepper_state_t state, uint8_t axis,
bool b)
830 #define N_AUX_AIN_MAX (Input_Analog_AuxMax - Input_Analog_Aux0 + 1)
831 #define N_AUX_AOUT_MAX (Output_Analog_AuxMax - Output_Analog_Aux0 + 1)
832 #define N_AUX_DIN_MAX (Input_AuxMax - Input_Aux0 + 1)
833 #define N_AUX_DOUT_MAX (Output_AuxMax - Output_Aux0 + 1)
limit_signals_t xbar_get_homing_source_from_cycle(axes_signals_t homing_cycle)
Definition: crossbar.c:161
bool(* irq_callback_ptr)(uint_fast8_t id, bool level)
Definition: crossbar.h:590
const char * xbar_fn_to_pinname(pin_function_t id)
Definition: crossbar.c:177
const char * xbar_group_to_description(pin_group_t group)
Definition: crossbar.c:191
const char * xbar_resolution_to_string(pin_cap_t cap)
Definition: crossbar.c:205
pull_mode_t
Pin pullup and pulldown modes, may be or'ed when reporting pin capability.
Definition: crossbar.h:599
@ PullMode_Down
0b10 (0x02)
Definition: crossbar.h:602
@ PullMode_None
0b00 (0x00)
Definition: crossbar.h:600
@ PullMode_Up
0b01 (0x01)
Definition: crossbar.h:601
@ PullMode_UpDown
0b11 (0x03) - only used to report port capability.
Definition: crossbar.h:603
resolution_t
ADC/DAC resolution or multi pin register width.
Definition: crossbar.h:607
@ Resolution_32bit
9 - 32 bit, NOTE: "wait for input" can only return 31 bits
Definition: crossbar.h:617
@ Resolution_8bit
1 - 8 bit
Definition: crossbar.h:609
@ Resolution_20bit
7 - 20 bit
Definition: crossbar.h:615
@ Resolution_18bit
6 - 18 bit
Definition: crossbar.h:614
@ Resolution_14bit
4 - 14 bit
Definition: crossbar.h:612
@ Resolution_4bit
0 - 4 bit
Definition: crossbar.h:608
@ Resolution_10bit
2 - 10 bit
Definition: crossbar.h:610
@ Resolution_24bit
8 - 24 bit
Definition: crossbar.h:616
@ Resolution_12bit
3 - 12 bit
Definition: crossbar.h:611
@ Resolution_16bit
5 - 16 bit
Definition: crossbar.h:613
pin_function_t
Definition: crossbar.h:27
@ Output_DirX_2
Definition: crossbar.h:153
@ Output_SPICS
Definition: crossbar.h:249
@ Input_MotorFaultW
Definition: crossbar.h:53
@ Input_LimitB
Definition: crossbar.h:83
@ Input_QEI_A
Definition: crossbar.h:265
@ Input_LimitY_2
Definition: crossbar.h:70
@ Input_FeedHold
Definition: crossbar.h:30
@ Input_Aux6
Definition: crossbar.h:106
@ Output_Aux2
Definition: crossbar.h:202
@ Input_Toolsetter
Definition: crossbar.h:59
@ Output_Analog_Aux0
Definition: crossbar.h:225
@ Output_MOSI
Definition: crossbar.h:247
@ Output_LED_R
Definition: crossbar.h:235
@ Input_MotorFaultA
Definition: crossbar.h:48
@ Input_HomeX_2
Definition: crossbar.h:67
@ Output_Aux14
Definition: crossbar.h:214
@ Output_RTS
Definition: crossbar.h:263
@ Input_Analog_Aux1
Definition: crossbar.h:126
@ Input_SpindleIndex
Definition: crossbar.h:98
@ Input_Analog_Aux5
Definition: crossbar.h:130
@ Input_MotorFaultB
Definition: crossbar.h:49
@ Output_StepperEnableV
Definition: crossbar.h:188
@ Virtual_Pin
Definition: crossbar.h:269
@ Output_StepZ_2
Definition: crossbar.h:144
@ Input_HomeA
Definition: crossbar.h:82
@ Input_HomeC
Definition: crossbar.h:88
@ Output_DirX
Definition: crossbar.h:151
@ Output_StepX2
Definition: crossbar.h:137
@ Output_TX
Definition: crossbar.h:262
@ Input_Aux13
Definition: crossbar.h:113
@ Output_MotorChipSelectX
Definition: crossbar.h:167
@ Input_MotorFaultU
Definition: crossbar.h:51
@ Output_Aux16
Definition: crossbar.h:216
@ Input_Aux19
Definition: crossbar.h:119
@ Input_Reset
Definition: crossbar.h:29
@ Output_StepZ2
Definition: crossbar.h:143
@ Bidirectional_MotorUARTM7
Definition: crossbar.h:279
@ Input_SPIIRQ
Definition: crossbar.h:254
@ Output_CoProc_Boot0
Definition: crossbar.h:243
@ Input_Aux15
Definition: crossbar.h:115
@ Output_StepB
Definition: crossbar.h:146
@ Input_HomeZ
Definition: crossbar.h:78
@ Bidirectional_MotorUARTM5
Definition: crossbar.h:277
@ Output_Aux4
Definition: crossbar.h:204
@ Input_Aux23
Definition: crossbar.h:123
@ Input_LimitZ2
Definition: crossbar.h:75
@ Input_Analog_Aux7
Definition: crossbar.h:132
@ Output_Analog_AuxMax
Definition: crossbar.h:233
@ Input_Probe
Definition: crossbar.h:43
@ Output_DirV
Definition: crossbar.h:164
@ Input_MotorFaultV
Definition: crossbar.h:52
@ Output_StepW
Definition: crossbar.h:150
@ Output_StepperEnableX
Definition: crossbar.h:178
@ Output_FlashCS
Definition: crossbar.h:250
@ Input_LimitW_Max
Definition: crossbar.h:96
@ Output_DirA
Definition: crossbar.h:160
@ Output_StepY_2
Definition: crossbar.h:141
@ Output_MotorChipSelectM6
Definition: crossbar.h:173
@ Output_DirB
Definition: crossbar.h:161
@ Input_MotorFault
Definition: crossbar.h:37
@ Output_SdCardCS
Definition: crossbar.h:251
@ Input_Probe2
Definition: crossbar.h:57
@ Input_Analog_AuxMax
Definition: crossbar.h:133
@ Bidirectional_MotorUARTM4
Definition: crossbar.h:276
@ Input_MotorWarning
Definition: crossbar.h:38
@ Output_DirY
Definition: crossbar.h:154
@ Input_ToolsetterOvertravel
Definition: crossbar.h:41
@ Output_DirW
Definition: crossbar.h:165
@ Output_StepperEnableAB
Definition: crossbar.h:191
@ Output_Aux13
Definition: crossbar.h:213
@ Output_MotorChipSelectM5
Definition: crossbar.h:172
@ Output_Aux1
Definition: crossbar.h:201
@ Input_ProbeDisconnect
Definition: crossbar.h:36
@ Input_MotorFaultX
Definition: crossbar.h:45
@ Bidirectional_I2CSDA
Definition: crossbar.h:258
@ Output_Aux11
Definition: crossbar.h:211
@ Input_MotorFaultY_2
Definition: crossbar.h:55
@ Input_Aux16
Definition: crossbar.h:116
@ Input_LimitX
Definition: crossbar.h:62
@ Output_DirX2
Definition: crossbar.h:152
@ Output_Analog_Aux6
Definition: crossbar.h:231
@ Input_Probe2Overtravel
Definition: crossbar.h:58
@ Output_LED
Definition: crossbar.h:234
@ Input_EStop
Definition: crossbar.h:35
@ Input_Aux12
Definition: crossbar.h:112
@ Input_StopDisable
Definition: crossbar.h:34
@ Input_LimitW
Definition: crossbar.h:95
@ Input_MotorFaultX_2
Definition: crossbar.h:54
@ Input_HomeZ_2
Definition: crossbar.h:79
@ Input_LimitA_Max
Definition: crossbar.h:81
@ Output_DirY_2
Definition: crossbar.h:156
@ Input_HomeX
Definition: crossbar.h:66
@ Output_StepperEnableXY
Definition: crossbar.h:190
@ Input_SdCardDetect
Definition: crossbar.h:252
@ Input_Aux21
Definition: crossbar.h:121
@ Output_LED1_Adressable
Definition: crossbar.h:241
@ Input_MotorFaultC
Definition: crossbar.h:50
@ Input_SpindlePulse
Definition: crossbar.h:99
@ Input_HomeY_2
Definition: crossbar.h:73
@ Output_LED_Adressable
Definition: crossbar.h:239
@ Output_Aux18
Definition: crossbar.h:218
@ Output_DirZ
Definition: crossbar.h:157
@ Bidirectional_MotorUARTM6
Definition: crossbar.h:278
@ Input_LimitsOverride
Definition: crossbar.h:39
@ Input_HomeU
Definition: crossbar.h:91
@ Input_Aux3
Definition: crossbar.h:103
@ Input_ModeSelect
Definition: crossbar.h:61
@ Output_LED0_Adressable
Definition: crossbar.h:240
@ Output_RS485_Direction
Definition: crossbar.h:264
@ Outputs
Definition: crossbar.h:136
@ Input_Aux18
Definition: crossbar.h:118
@ Input_Aux8
Definition: crossbar.h:108
@ Output_CoProc_Reset
Definition: crossbar.h:242
@ Output_StepV
Definition: crossbar.h:149
@ Input_Aux11
Definition: crossbar.h:111
@ Output_StepperEnableZ
Definition: crossbar.h:182
@ Output_Analog_Aux3
Definition: crossbar.h:228
@ Output_StepU
Definition: crossbar.h:148
@ Input_LimitX_Max
Definition: crossbar.h:65
@ Output_AuxMax
Definition: crossbar.h:224
@ Output_Aux17
Definition: crossbar.h:217
@ Input_QEI_Select
Definition: crossbar.h:267
@ Output_StepperEnableU
Definition: crossbar.h:187
@ Output_StepperEnableA
Definition: crossbar.h:184
@ Input_Aux9
Definition: crossbar.h:109
@ Output_Aux7
Definition: crossbar.h:207
@ Output_MotorChipSelectY
Definition: crossbar.h:168
@ Bidirectional_MotorUARTZ
Definition: crossbar.h:274
@ Input_LimitA
Definition: crossbar.h:80
@ Output_StepperPower
Definition: crossbar.h:175
@ Output_StepperEnableY2
Definition: crossbar.h:181
@ Input_HomeY
Definition: crossbar.h:72
@ Input_MotorFaultY
Definition: crossbar.h:46
@ Input_LimitY
Definition: crossbar.h:68
@ Output_Aux9
Definition: crossbar.h:209
@ Input_BlockDelete
Definition: crossbar.h:33
@ Input_KeypadStrobe
Definition: crossbar.h:259
@ Output_LED_G
Definition: crossbar.h:236
@ Output_StepY2
Definition: crossbar.h:140
@ Input_Aux2
Definition: crossbar.h:102
@ Input_Aux4
Definition: crossbar.h:104
@ Output_StepperEnableW
Definition: crossbar.h:189
@ Output_Aux15
Definition: crossbar.h:215
@ Input_HomeV
Definition: crossbar.h:94
@ Output_StepperEnable
Definition: crossbar.h:176
@ Input_LimitV_Max
Definition: crossbar.h:93
@ Input_Aux20
Definition: crossbar.h:120
@ Output_Analog_Aux1
Definition: crossbar.h:226
@ Input_HomeW
Definition: crossbar.h:97
@ Input_LimitU_Max
Definition: crossbar.h:90
@ Input_LimitY_Max
Definition: crossbar.h:71
@ Output_Aux22
Definition: crossbar.h:222
@ Output_SpindleDir
Definition: crossbar.h:193
@ Output_Aux20
Definition: crossbar.h:220
@ Output_StepperEnableY
Definition: crossbar.h:180
@ Input_LimitZ_Max
Definition: crossbar.h:77
@ Multipin
Definition: crossbar.h:246
@ Output_StepperEnableC
Definition: crossbar.h:186
@ Input_LimitX_2
Definition: crossbar.h:64
@ Input_LimitC
Definition: crossbar.h:86
@ Input_SingleBlock
Definition: crossbar.h:40
@ Output_DirU
Definition: crossbar.h:163
@ Input_Aux14
Definition: crossbar.h:114
@ Output_SPIRST
Definition: crossbar.h:253
@ Input_LimitU
Definition: crossbar.h:89
@ Input_LimitX2
Definition: crossbar.h:63
@ Input_LimitB_Max
Definition: crossbar.h:84
@ Input_AuxMax
Definition: crossbar.h:124
@ Output_DirZ_2
Definition: crossbar.h:159
@ Output_MotorChipSelectM7
Definition: crossbar.h:174
@ Input_ProbeOvertravel
Definition: crossbar.h:42
@ Output_MotorChipSelectM3
Definition: crossbar.h:170
@ Input_LimitZ_2
Definition: crossbar.h:76
@ Output_DirC
Definition: crossbar.h:162
@ Output_Analog_Aux7
Definition: crossbar.h:232
@ Output_Aux12
Definition: crossbar.h:212
@ Output_StepY
Definition: crossbar.h:139
@ Output_SpindleOn
Definition: crossbar.h:192
@ Input_LimitV
Definition: crossbar.h:92
@ Output_Aux8
Definition: crossbar.h:208
@ Input_I2CStrobe
Definition: crossbar.h:260
@ Input_Analog_Aux3
Definition: crossbar.h:128
@ Output_Spindle1Dir
Definition: crossbar.h:196
@ Output_Aux10
Definition: crossbar.h:210
@ Output_SpindlePWM
Definition: crossbar.h:194
@ Output_Aux23
Definition: crossbar.h:223
@ Output_CoolantMist
Definition: crossbar.h:198
@ Input_MotorFaultZ_2
Definition: crossbar.h:56
@ Input_MPGSelect
Definition: crossbar.h:60
@ Output_Spindle1On
Definition: crossbar.h:195
@ Input_Aux1
Definition: crossbar.h:101
@ Input_RX
Definition: crossbar.h:261
@ Bidirectional_MotorUARTM3
Definition: crossbar.h:275
@ Output_DirY2
Definition: crossbar.h:155
@ Input_LimitZ
Definition: crossbar.h:74
@ Output_StepX_2
Definition: crossbar.h:138
@ Input_Analog_Aux6
Definition: crossbar.h:131
@ Output_Aux21
Definition: crossbar.h:221
@ Output_MotorChipSelectM4
Definition: crossbar.h:171
@ Bidirectional_MotorUARTX
Definition: crossbar.h:271
@ Input_Aux17
Definition: crossbar.h:117
@ Input_Aux0
Definition: crossbar.h:100
@ Bidirectional_SDA
Definition: crossbar.h:257
@ Output_MotorChipSelectZ
Definition: crossbar.h:169
@ Output_Analog_Aux2
Definition: crossbar.h:227
@ Input_Aux10
Definition: crossbar.h:110
@ Output_Analog_Aux4
Definition: crossbar.h:229
@ Output_Aux0
Definition: crossbar.h:200
@ Input_Analog_Aux2
Definition: crossbar.h:127
@ Input_QEI_B
Definition: crossbar.h:266
@ Output_Aux19
Definition: crossbar.h:219
@ Output_Aux6
Definition: crossbar.h:206
@ Input_MISO
Definition: crossbar.h:245
@ Bidirectional_MotorUARTY
Definition: crossbar.h:273
@ Output_Aux5
Definition: crossbar.h:205
@ Output_StepperEnableB
Definition: crossbar.h:185
@ Output_SCK
Definition: crossbar.h:255
@ Input_CycleStart
Definition: crossbar.h:31
@ Output_LED_B
Definition: crossbar.h:237
@ Output_StepX
Definition: crossbar.h:135
@ Output_Aux3
Definition: crossbar.h:203
@ Bidirectional
Definition: crossbar.h:272
@ Input_LimitY2
Definition: crossbar.h:69
@ Output_DirZ2
Definition: crossbar.h:158
@ Output_StepZ
Definition: crossbar.h:142
@ Output_StepC
Definition: crossbar.h:147
@ Output_SPICLK
Definition: crossbar.h:248
@ Input_MotorFaultZ
Definition: crossbar.h:47
@ Input_QEI_Index
Definition: crossbar.h:268
@ Input_Analog_Aux0
Definition: crossbar.h:125
@ Output_MotorChipSelect
Definition: crossbar.h:166
@ Input_Aux7
Definition: crossbar.h:107
@ Input_SafetyDoor
Definition: crossbar.h:32
@ Output_CoolantFlood
Definition: crossbar.h:199
@ Output_StepperEnableX2
Definition: crossbar.h:179
@ Output_StepperEnableSTEPPERS
Definition: crossbar.h:177
@ Input_HomeB
Definition: crossbar.h:85
@ Input_Aux5
Definition: crossbar.h:105
@ Output_Analog_Aux5
Definition: crossbar.h:230
@ Input_LimitC_Max
Definition: crossbar.h:87
@ Output_LED_W
Definition: crossbar.h:238
@ Input_Aux22
Definition: crossbar.h:122
@ Output_StepA
Definition: crossbar.h:145
@ Input_Analog_Aux4
Definition: crossbar.h:129
@ Output_StepperEnableZ2
Definition: crossbar.h:183
@ Output_I2CSCK
Definition: crossbar.h:256
@ Output_Spindle1PWM
Definition: crossbar.h:197
float(* xbar_get_value_ptr)(struct xbar *pin)
Definition: crossbar.h:734
bool(* xbar_set_function_ptr)(struct xbar *pin, pin_function_t function)
Definition: crossbar.h:736
limit_signals_t xbar_get_homing_source(void)
Definition: crossbar.c:155
void(* xbar_event_ptr)(bool on)
Definition: crossbar.h:737
axes_signals_t xbar_fn_to_axismask(pin_function_t id)
Definition: crossbar.c:26
pin_group_t
Definition: crossbar.h:529
@ PinGroup_SpindlePWM
Definition: crossbar.h:531
@ PinGroup_AuxInputAnalog
Definition: crossbar.h:540
@ PinGroup_UART1
Definition: crossbar.h:546
@ PinGroup_Control
Definition: crossbar.h:557
@ PinGroup_QEI_Select
Definition: crossbar.h:564
@ PinGroup_AuxOutput
Definition: crossbar.h:539
@ PinGroup_QEI
Definition: crossbar.h:563
@ PinGroup_Keypad
Definition: crossbar.h:561
@ PinGroup_StepperDir
Definition: crossbar.h:538
@ PinGroup_USB
Definition: crossbar.h:551
@ PinGroup_SPI
Definition: crossbar.h:545
@ PinGroup_UART3
Definition: crossbar.h:549
@ PinGroup_StepperPower
Definition: crossbar.h:535
@ PinGroup_Virtual
Definition: crossbar.h:555
@ PinGroup_UART4
Definition: crossbar.h:550
@ PinGroup_CAN
Definition: crossbar.h:552
@ PinGroup_MotorChipSelect
Definition: crossbar.h:542
@ PinGroup_AuxOutputAnalog
Definition: crossbar.h:541
@ PinGroup_SdCard
Definition: crossbar.h:568
@ PinGroup_Motor_Warning
Definition: crossbar.h:566
@ PinGroup_I2C
Definition: crossbar.h:544
@ PinGroup_LED
Definition: crossbar.h:553
@ PinGroup_MotorUART
Definition: crossbar.h:543
@ PinGroup_UART2
Definition: crossbar.h:548
@ PinGroup_Limit
Definition: crossbar.h:558
@ PinGroup_QEI_Index
Definition: crossbar.h:565
@ PinGroup_SpindleIndex
Definition: crossbar.h:534
@ PinGroup_AuxInput
Definition: crossbar.h:569
@ PinGroup_Home
Definition: crossbar.h:554
@ PinGroup_Probe
Definition: crossbar.h:560
@ PinGroup_LimitMax
Definition: crossbar.h:559
@ PinGroup_MPG
Definition: crossbar.h:562
@ PinGroup_StepperStep
Definition: crossbar.h:537
@ PinGroup_StepperEnable
Definition: crossbar.h:536
@ PinGroup_SpindlePulse
Definition: crossbar.h:533
@ PinGroup_Coolant
Definition: crossbar.h:532
@ PinGroup_Motor_Fault
Definition: crossbar.h:567
@ PinGroup_SpindleControl
Definition: crossbar.h:530
@ PinGroup_UART
Definition: crossbar.h:547
irq_type_t
Definition: crossbar.h:585
@ IRQ_I2C_Strobe
Definition: crossbar.h:586
@ IRQ_SPI
Definition: crossbar.h:587
bool(* xbar_config_ptr)(struct xbar *pin, xbar_cfg_ptr_t cfg_data, bool persistent)
Definition: crossbar.h:738
struct driver_irq_handler driver_irq_handler_t
control_signals_t xbar_fn_to_signals_mask(pin_function_t id)
Definition: crossbar.c:196
pin_irq_mode_t
Pin interrupt modes, may be or'ed when reporting pin capability.
Definition: crossbar.h:573
@ IRQ_Mode_Low
0b10000 (0x10)
Definition: crossbar.h:581
@ IRQ_Mode_Rising
0b00001 (0x01)
Definition: crossbar.h:575
@ IRQ_Mode_RisingFalling
0b00011 (0x03) - only used to report port capability.
Definition: crossbar.h:577
@ IRQ_Mode_None
0b00000 (0x00)
Definition: crossbar.h:574
@ IRQ_Mode_High
0b01000 (0x08)
Definition: crossbar.h:580
@ IRQ_Mode_All
0b11111 (0x1F) - only used to report port capability.
Definition: crossbar.h:582
@ IRQ_Mode_Change
0b00100 (0x04)
Definition: crossbar.h:578
@ IRQ_Mode_Falling
0b00010 (0x02)
Definition: crossbar.h:576
@ IRQ_Mode_Edges
0b00111 (0x07) - only used to report port capability.
Definition: crossbar.h:579
void xbar_set_homing_source(void)
Definition: crossbar.c:144
void(* xbar_set_value_ptr)(struct xbar *pin, float value)
Definition: crossbar.h:735
struct periph_signal periph_signal_t
#define bit_istrue(x, mask)
Definition: nuts_bolts.h:474
Definition: crossbar.h:756
uint8_t port
Auxiliary port number, post claimed.
Definition: crossbar.h:758
void * output
Pointer to the driver input array entry for the pin.
Definition: crossbar.h:760
aux_gpio_t gpio
MCU port base address (may be NULL) and pin number.
Definition: crossbar.h:759
Definition: crossbar.h:746
bool scan
true if the pin is to be scanned when control state is requested.
Definition: crossbar.h:753
pin_irq_mode_t irq_mode
Required IRQ mode for the input.
Definition: crossbar.h:749
control_signals_t signal
Set to the pin the input maps to, 0 if none.
Definition: crossbar.h:750
uint8_t port
Auxiliary port number, post claimed.
Definition: crossbar.h:748
void * input
Pointer to the driver input array entry for the pin.
Definition: crossbar.h:752
aux_gpio_t gpio
MCU port base address (may be NULL) and pin number.
Definition: crossbar.h:751
Definition: crossbar.h:741
uint8_t pin
MCU pin number.
Definition: crossbar.h:743
void * port
MCU port address (may be NULL).
Definition: crossbar.h:742
Definition: crossbar.h:592
irq_callback_ptr callback
Definition: crossbar.h:594
struct driver_irq_handler * next
Definition: crossbar.h:595
irq_type_t type
Definition: crossbar.h:593
/a cfg_data argument to /a xbar_config_ptr for gpio input pins
Definition: crossbar.h:700
bool debounce
Definition: crossbar.h:702
bool inverted
Definition: crossbar.h:701
pull_mode_t pull_mode
Definition: crossbar.h:703
/a cfg_data argument to /a xbar_config_ptr for gpio output pins
Definition: crossbar.h:707
bool inverted
Definition: crossbar.h:708
bool open_drain
Definition: crossbar.h:709
bool pwm
Definition: crossbar.h:710
axes_signals_t a
Primary home switches status, optional. Limit signals are used for homing if not available.
Definition: nuts_bolts.h:397
axes_signals_t b
Secondary home switch(es) status, required for auto squaring enabled axes if primary switches are ava...
Definition: nuts_bolts.h:398
Definition: crossbar.h:780
pin_mode_t mode
Definition: crossbar.h:785
const char * description
Definition: crossbar.h:786
uint_fast8_t pin
Definition: crossbar.h:784
void * port
Definition: crossbar.h:783
pin_group_t group
Definition: crossbar.h:782
Definition: crossbar.h:789
struct periph_signal * next
Definition: crossbar.h:791
periph_pin_t pin
Definition: crossbar.h:790
Definition: crossbar.h:286
const char * name
Definition: crossbar.h:288
pin_function_t function
Definition: crossbar.h:287
/a cfg_data argument to /a xbar_config_ptr for PWM pins
Definition: crossbar.h:714
float freq_hz
Definition: crossbar.h:715
bool invert
Definition: crossbar.h:721
float max
Definition: crossbar.h:717
bool servo_mode
Definition: crossbar.h:722
float off_value
Definition: crossbar.h:718
float min_value
Definition: crossbar.h:719
float max_value
Definition: crossbar.h:720
float min
Definition: crossbar.h:716
Definition: crossbar.h:763
uint8_t id
Pin id.
Definition: crossbar.h:765
pin_mode_t mode
Current pin configuration.
Definition: crossbar.h:772
const char * description
Optional pointer to description string.
Definition: crossbar.h:769
xbar_config_ptr config
Optional pointer to function for configuring the port.
Definition: crossbar.h:773
xbar_set_function_ptr set_function
Optional pointer to function to set port function.
Definition: crossbar.h:776
xbar_set_value_ptr set_value
Optional pointer to function to set port value.
Definition: crossbar.h:775
xbar_get_value_ptr get_value
Optional pointer to function to get current port value.
Definition: crossbar.h:774
void * ports_id
Definition: crossbar.h:764
uint_fast8_t pin
Pin number.
Definition: crossbar.h:770
pin_cap_t cap
Pin capabilities.
Definition: crossbar.h:771
void * port
Optional pointer to the underlying peripheral or pin specific data.
Definition: crossbar.h:768
pin_group_t group
Pin group.
Definition: crossbar.h:767
Definition: nuts_bolts.h:246
uint8_t bits
Definition: nuts_bolts.h:248
Definition: nuts_bolts.h:416
Limit switches struct, consists of four packed axes_signals_t structs in 32 bits.
Definition: nuts_bolts.h:385
Definition: crossbar.h:631
uint32_t input
Definition: crossbar.h:634
uint32_t open_drain
Definition: crossbar.h:636
uint32_t analog
Definition: crossbar.h:640
uint32_t invert
Definition: crossbar.h:639
uint32_t claimable
Definition: crossbar.h:643
uint32_t servo_pwm
Definition: crossbar.h:642
uint32_t unused
Definition: crossbar.h:648
uint32_t pull_mode
pull_mode_t - pull up/down modes
Definition: crossbar.h:637
uint32_t output
Definition: crossbar.h:635
uint32_t mask
Definition: crossbar.h:632
uint32_t irq_mode
pin_irq_mode_t - IRQ modes
Definition: crossbar.h:638
uint32_t pwm
Definition: crossbar.h:641
uint32_t resolution
resolution_t - ADC/DAC resolution
Definition: crossbar.h:647
uint32_t external
Definition: crossbar.h:645
uint32_t async
Definition: crossbar.h:646
uint32_t debounce
Definition: crossbar.h:644
Definition: crossbar.h:794
uint8_t qei_select
Definition: crossbar.h:800
uint8_t aux_inputs
Definition: crossbar.h:798
uint8_t limits
Definition: crossbar.h:797
uint8_t unassigned
Definition: crossbar.h:801
uint8_t mask
Definition: crossbar.h:795
uint8_t safety_door
Definition: crossbar.h:799
Definition: crossbar.h:652
uint16_t output
Definition: crossbar.h:656
uint16_t irq_mode
Definition: crossbar.h:659
uint16_t claimed
Definition: crossbar.h:664
uint16_t debounce
Definition: crossbar.h:665
uint16_t pwm
Definition: crossbar.h:662
uint16_t open_drain
Definition: crossbar.h:657
uint16_t mask
Definition: crossbar.h:653
uint16_t input
Definition: crossbar.h:655
uint16_t analog
Definition: crossbar.h:661
uint16_t inverted
Definition: crossbar.h:660
uint16_t pull_mode
Definition: crossbar.h:658
uint16_t servo_pwm
Definition: crossbar.h:663
Stepper driver states struct.
Definition: nuts_bolts.h:402
home_signals_t details
Definition: nuts_bolts.h:404
Definition: crossbar.h:726
pwm_config_t * pwm_config
Definition: crossbar.h:727
gpio_out_config_t * gpio_out_config
Definition: crossbar.h:729
gpio_in_config_t * gpio_in_config
Definition: crossbar.h:728