Skip to content

Commit e258489

Browse files
committed
Simplified "callbacksInt" structure in WInterrupts.c
1 parent 6538f89 commit e258489

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

cores/arduino/WInterrupts.c

+5-11
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,12 @@
2525
extern "C" {
2626
#endif
2727

28-
static struct
29-
{
30-
uint32_t _ulPin ;
31-
voidFuncPtr _callback ;
32-
} callbacksInt[EXTERNAL_NUM_INTERRUPTS] ;
28+
static voidFuncPtr callbacksInt[EXTERNAL_NUM_INTERRUPTS];
3329

3430
/* Configure I/O interrupt sources */
3531
static void __initialize()
3632
{
37-
memset( callbacksInt, 0, sizeof( callbacksInt ) ) ;
33+
memset(callbacksInt, 0, sizeof(callbacksInt));
3834

3935
NVIC_DisableIRQ( EIC_IRQn ) ;
4036
NVIC_ClearPendingIRQ( EIC_IRQn ) ;
@@ -88,8 +84,7 @@ void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode)
8884
pinPeripheral(pin, PIO_EXTINT);
8985

9086
// Assign callback to interrupt
91-
callbacksInt[digitalPinToInterrupt(pin)]._ulPin = pin;
92-
callbacksInt[digitalPinToInterrupt(pin)]._callback = callback;
87+
callbacksInt[digitalPinToInterrupt(pin)] = callback;
9388

9489
// Look for right CONFIG register to be addressed
9590
if (digitalPinToInterrupt(pin) > EXTERNAL_INT_7) {
@@ -153,9 +148,8 @@ void EIC_Handler( void )
153148
if ( (EIC->INTFLAG.reg & ( 1 << ul ) ) != 0 )
154149
{
155150
// Call the callback function if assigned
156-
if ( callbacksInt[ul]._callback != NULL )
157-
{
158-
callbacksInt[ul]._callback() ;
151+
if (callbacksInt[ul]) {
152+
callbacksInt[ul]();
159153
}
160154

161155
// Clear the interrupt

0 commit comments

Comments
 (0)