|
25 | 25 | extern "C" { |
26 | 26 | #endif |
27 | 27 |
|
28 | | -static struct |
29 | | -{ |
30 | | - uint32_t _ulPin ; |
31 | | - voidFuncPtr _callback ; |
32 | | -} callbacksInt[EXTERNAL_NUM_INTERRUPTS] ; |
| 28 | +static voidFuncPtr callbacksInt[EXTERNAL_NUM_INTERRUPTS]; |
33 | 29 |
|
34 | 30 | /* Configure I/O interrupt sources */ |
35 | 31 | static void __initialize() |
36 | 32 | { |
37 | | - memset( callbacksInt, 0, sizeof( callbacksInt ) ) ; |
| 33 | + memset(callbacksInt, 0, sizeof(callbacksInt)); |
38 | 34 |
|
39 | 35 | NVIC_DisableIRQ( EIC_IRQn ) ; |
40 | 36 | NVIC_ClearPendingIRQ( EIC_IRQn ) ; |
@@ -88,8 +84,7 @@ void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode) |
88 | 84 | pinPeripheral(pin, PIO_EXTINT); |
89 | 85 |
|
90 | 86 | // Assign callback to interrupt |
91 | | - callbacksInt[digitalPinToInterrupt(pin)]._ulPin = pin; |
92 | | - callbacksInt[digitalPinToInterrupt(pin)]._callback = callback; |
| 87 | + callbacksInt[digitalPinToInterrupt(pin)] = callback; |
93 | 88 |
|
94 | 89 | // Look for right CONFIG register to be addressed |
95 | 90 | if (digitalPinToInterrupt(pin) > EXTERNAL_INT_7) { |
@@ -153,9 +148,8 @@ void EIC_Handler( void ) |
153 | 148 | if ( (EIC->INTFLAG.reg & ( 1 << ul ) ) != 0 ) |
154 | 149 | { |
155 | 150 | // Call the callback function if assigned |
156 | | - if ( callbacksInt[ul]._callback != NULL ) |
157 | | - { |
158 | | - callbacksInt[ul]._callback() ; |
| 151 | + if (callbacksInt[ul]) { |
| 152 | + callbacksInt[ul](); |
159 | 153 | } |
160 | 154 |
|
161 | 155 | // Clear the interrupt |
|
0 commit comments