|
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