Revision 0128be0f modules/LightRing_1-0/module.c
modules/LightRing_1-0/module.c | ||
---|---|---|
29 | 29 |
/** |
30 | 30 |
* @brief Interrupt service routine callback for I/O interrupt signals. |
31 | 31 |
* |
32 |
* @param extp EXT driver to handle the ISR. |
|
33 |
* @param channel Channel on which the interrupt was encountered. |
|
32 |
* @param args Channel on which the interrupt was encountered. |
|
34 | 33 |
*/ |
35 |
static void _moduleIsrCallback(EXTDriver* extp, expchannel_t channel) { |
|
36 |
(void)extp; |
|
37 |
|
|
34 |
static void _modulePalIsrCallback(void *args) { |
|
38 | 35 |
chSysLockFromISR(); |
39 |
chEvtBroadcastFlagsI(&aos.events.io, (1 << channel));
|
|
36 |
chEvtBroadcastFlagsI(&aos.events.io, (1 << (*(uint16_t*)args)));
|
|
40 | 37 |
chSysUnlockFromISR(); |
41 | 38 |
|
42 | 39 |
return; |
... | ... | |
56 | 53 |
/* btr */ CAN_BTR_SJW(1) | CAN_BTR_TS2(2) | CAN_BTR_TS1(13) | CAN_BTR_BRP(1), |
57 | 54 |
}; |
58 | 55 |
|
59 |
EXTConfig moduleHalExtConfig = { |
|
60 |
/* channel configrations */ { |
|
61 |
/* channel 0 */ { |
|
62 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
63 |
/* callback */ NULL, |
|
64 |
}, |
|
65 |
/* channel 1 */ { |
|
66 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
67 |
/* callback */ NULL, |
|
68 |
}, |
|
69 |
/* channel 2 */ { // SYS_SYNC_N: automatic interrupt on event |
|
70 |
/* mode */ EXT_MODE_GPIOD | EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART, |
|
71 |
/* callback */ _moduleIsrCallback |
|
72 |
}, |
|
73 |
/* channel 3 */ { |
|
74 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
75 |
/* callback */ NULL, |
|
76 |
}, |
|
77 |
/* channel 4 */ { |
|
78 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
79 |
/* callback */ NULL, |
|
80 |
}, |
|
81 |
/* channel 5 */ { // LASER_OC_N: must be enabled explicitely |
|
82 |
/* mode */ EXT_MODE_GPIOB | EXT_CH_MODE_FALLING_EDGE, |
|
83 |
/* callback */ _moduleIsrCallback, |
|
84 |
}, |
|
85 |
/* channel 6 */ { // SYS_UART_DN: automatic interrupt on event |
|
86 |
/* mode */ EXT_MODE_GPIOB | EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART, |
|
87 |
/* callback */ _moduleIsrCallback, |
|
88 |
}, |
|
89 |
/* channel 7 */ { |
|
90 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
91 |
/* callback */ NULL, |
|
56 |
aos_interrupt_cfg_t moduleIntConfig[6] = { |
|
57 |
/* channel 1 */ { // SYS_INT_N/SYS_SYNC_N: automatic interrupt on event |
|
58 |
/* port */ GPIOD, |
|
59 |
/* pad */ GPIOD_SYS_INT_N, |
|
60 |
/* flags */ AOS_INTERRUPT_AUTOSTART, |
|
61 |
/* mode */ PAL_EVENT_MODE_BOTH_EDGES, |
|
62 |
/* callback */ _modulePalIsrCallback, |
|
63 |
/* cb arg */ 1, |
|
92 | 64 |
}, |
93 |
/* channel 8 */ { // WL_GDO0: must be enabled explicitely |
|
94 |
/* mode */ EXT_MODE_GPIOB | EXT_CH_MODE_BOTH_EDGES, |
|
95 |
/* callback */ _moduleIsrCallback, |
|
65 |
/* channel 2 */ { // LASER_OC_N: must be enabled explicitely |
|
66 |
/* port */ GPIOB, |
|
67 |
/* pad */ GPIOB_LASER_OC_N, |
|
68 |
/* flags */ 0, |
|
69 |
/* mode */ PAL_EVENT_MODE_FALLING_EDGE, |
|
70 |
/* callback */ _modulePalIsrCallback, |
|
71 |
/* cb arg */ 2, |
|
96 | 72 |
}, |
97 |
/* channel 9 */ { // WL_GDO2: must be enabled explicitely |
|
98 |
/* mode */ EXT_MODE_GPIOB | EXT_CH_MODE_BOTH_EDGES, |
|
99 |
/* callback */ _moduleIsrCallback, |
|
73 |
/* channel 3 */ { // SYS_UART_DN: automatic interrupt on event |
|
74 |
/* port */ GPIOB, |
|
75 |
/* pad */ GPIOB_SYS_UART_DN, |
|
76 |
/* flags */ AOS_INTERRUPT_AUTOSTART, |
|
77 |
/* mode */ PAL_EVENT_MODE_BOTH_EDGES, |
|
78 |
/* callback */ _modulePalIsrCallback, |
|
79 |
/* cb arg */ 3, |
|
100 | 80 |
}, |
101 |
/* channel 10 */ { |
|
102 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
103 |
/* callback */ NULL, |
|
81 |
/* channel 4 */ { // WL_GDO0: must be enabled explicitely |
|
82 |
/* port */ GPIOB, |
|
83 |
/* pad */ GPIOB_WL_GDO0, |
|
84 |
/* flags */ 0, |
|
85 |
/* mode */ PAL_EVENT_MODE_BOTH_EDGES, |
|
86 |
/* callback */ _modulePalIsrCallback, |
|
87 |
/* cb arg */ 4, |
|
104 | 88 |
}, |
105 |
/* channel 11 */ { |
|
106 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
107 |
/* callback */ NULL, |
|
89 |
/* channel 5 */ { // WL_GDO2: must be enabled explicitely |
|
90 |
/* port */ GPIOB, |
|
91 |
/* pad */ GPIOB_WL_GDO2, |
|
92 |
/* flags */ 0, |
|
93 |
/* mode */ PAL_EVENT_MODE_BOTH_EDGES, |
|
94 |
/* callback */ _modulePalIsrCallback, |
|
95 |
/* cb arg */ 5, |
|
108 | 96 |
}, |
109 |
/* channel 12 */ { |
|
110 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
111 |
/* callback */ NULL, |
|
97 |
/* channel 6 */ { // SYS_PD_N: automatic interrupt on event |
|
98 |
/* port */ GPIOC, |
|
99 |
/* pad */ GPIOC_SYS_PD_N, |
|
100 |
/* flags */ AOS_INTERRUPT_AUTOSTART, |
|
101 |
/* mode */ PAL_EVENT_MODE_FALLING_EDGE, |
|
102 |
/* callback */ _modulePalIsrCallback, |
|
103 |
/* cb arg */ 6, |
|
112 | 104 |
}, |
113 |
/* channel 13 */ { |
|
114 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
115 |
/* callback */ NULL, |
|
116 |
}, |
|
117 |
/* channel 14 */ { // SYS_PD_N: automatic interrupt when activated |
|
118 |
/* mode */ EXT_MODE_GPIOC | EXT_CH_MODE_FALLING_EDGE | EXT_CH_MODE_AUTOSTART, |
|
119 |
/* callback */ _moduleIsrCallback |
|
120 |
}, |
|
121 |
/* channel 15 */ { |
|
122 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
123 |
/* callback */ NULL, |
|
124 |
}, |
|
125 |
/* channel 16 */ { |
|
126 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
127 |
/* callback */ NULL, |
|
128 |
}, |
|
129 |
/* channel 17 */ { |
|
130 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
131 |
/* callback */ NULL, |
|
132 |
}, |
|
133 |
/* channel 18 */ { |
|
134 |
/* mode */ EXT_CH_MODE_DISABLED, |
|
135 |
/* callback */ NULL, |
|
136 |
}, |
|
137 |
} |
|
105 |
}; |
|
106 |
|
|
107 |
aos_interrupt_driver_t moduleIntDriver = { |
|
108 |
/* config */ NULL, |
|
109 |
/* interrupts */ 6, |
|
138 | 110 |
}; |
139 | 111 |
|
140 | 112 |
I2CConfig moduleHalI2cEepromConfig = { |
... | ... | |
151 | 123 |
}; |
152 | 124 |
|
153 | 125 |
SPIConfig moduleHalSpiLightConfig = { |
126 |
/* circular buffer mode */ false, |
|
154 | 127 |
/* callback function pointer */ NULL, |
155 | 128 |
/* chip select line port */ GPIOC, |
156 | 129 |
/* chip select line pad number */ GPIOC_LIGHT_XLAT, |
Also available in: Unified diff