Skip to content
Snippets Groups Projects
Commit e2584897 authored by Cristian Maglie's avatar Cristian Maglie
Browse files

Simplified "callbacksInt" structure in WInterrupts.c

parent 6538f895
No related branches found
No related tags found
No related merge requests found
......@@ -25,16 +25,12 @@
extern "C" {
#endif
static struct
{
uint32_t _ulPin ;
voidFuncPtr _callback ;
} callbacksInt[EXTERNAL_NUM_INTERRUPTS] ;
static voidFuncPtr callbacksInt[EXTERNAL_NUM_INTERRUPTS];
/* Configure I/O interrupt sources */
static void __initialize()
{
memset( callbacksInt, 0, sizeof( callbacksInt ) ) ;
memset(callbacksInt, 0, sizeof(callbacksInt));
NVIC_DisableIRQ( EIC_IRQn ) ;
NVIC_ClearPendingIRQ( EIC_IRQn ) ;
......@@ -88,8 +84,7 @@ void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode)
pinPeripheral(pin, PIO_EXTINT);
// Assign callback to interrupt
callbacksInt[digitalPinToInterrupt(pin)]._ulPin = pin;
callbacksInt[digitalPinToInterrupt(pin)]._callback = callback;
callbacksInt[digitalPinToInterrupt(pin)] = callback;
// Look for right CONFIG register to be addressed
if (digitalPinToInterrupt(pin) > EXTERNAL_INT_7) {
......@@ -153,9 +148,8 @@ void EIC_Handler( void )
if ( (EIC->INTFLAG.reg & ( 1 << ul ) ) != 0 )
{
// Call the callback function if assigned
if ( callbacksInt[ul]._callback != NULL )
{
callbacksInt[ul]._callback() ;
if (callbacksInt[ul]) {
callbacksInt[ul]();
}
// Clear the interrupt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment