@@ -68,101 +68,89 @@ static void __initialize()
6868 * \brief Specifies a named Interrupt Service Routine (ISR) to call when an interrupt occurs.
6969 * Replaces any previous function that was attached to the interrupt.
7070 */
71- //void attachInterrupt( uint32_t ulPin, void (*callback)(void), EExt_IntMode mode )
72- //void attachInterrupt( uint32_t ulPin, voidFuncPtr callback, EExt_IntMode mode )
73- void attachInterrupt ( uint32_t ulPin , voidFuncPtr callback , uint32_t ulMode )
71+ void attachInterrupt (uint32_t pin , voidFuncPtr callback , uint32_t mode )
7472{
75- static int enabled = 0 ;
76- uint32_t ulConfig ;
77- uint32_t ulPos ;
73+ static int enabled = 0 ;
74+ uint32_t config ;
75+ uint32_t pos ;
7876
79- if ( digitalPinToInterrupt ( ulPin ) == NOT_AN_INTERRUPT )
80- {
81- return ;
82- }
77+ if (digitalPinToInterrupt (pin ) == NOT_AN_INTERRUPT )
78+ return ;
8379
84- if ( !enabled )
85- {
86- __initialize () ;
87- enabled = 1 ;
80+ if (!enabled ) {
81+ __initialize ();
82+ enabled = 1 ;
8883 }
8984
9085 // Assign pin to EIC
91- pinPeripheral ( ulPin , PIO_EXTINT ) ;
86+ pinPeripheral (pin , PIO_EXTINT ) ;
9287
9388 // Assign callback to interrupt
94- callbacksInt [digitalPinToInterrupt ( ulPin )]._ulPin = ulPin ;
95- callbacksInt [digitalPinToInterrupt ( ulPin )]._callback = callback ;
89+ callbacksInt [digitalPinToInterrupt (pin )]._ulPin = pin ;
90+ callbacksInt [digitalPinToInterrupt (pin )]._callback = callback ;
9691
9792 // Check if normal interrupt or NMI
98- if ( ulPin != 2 )
93+ if (pin != 2 )
9994 {
10095 // Look for right CONFIG register to be addressed
101- if ( digitalPinToInterrupt ( ulPin ) > EXTERNAL_INT_7 )
102- {
103- ulConfig = 1 ;
104- }
105- else
106- {
107- ulConfig = 0 ;
96+ if (digitalPinToInterrupt (pin ) > EXTERNAL_INT_7 ) {
97+ config = 1 ;
98+ } else {
99+ config = 0 ;
108100 }
109101
110102 // Configure the interrupt mode
111- ulPos = ((digitalPinToInterrupt ( ulPin ) - (8 * ulConfig ) ) << 2 ) ;
112- switch ( ulMode )
103+ pos = ((digitalPinToInterrupt (pin ) - (8 * config )) << 2 );
104+ switch (mode )
113105 {
114106 case LOW :
115- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_LOW_Val << ulPos ;
116- break ;
107+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_LOW_Val << pos ;
108+ break ;
117109
118110 case HIGH :
119- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_HIGH_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
120- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_HIGH_Val << ulPos ;
121- break ;
111+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_HIGH_Val << pos ;
112+ break ;
122113
123114 case CHANGE :
124- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_BOTH_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
125- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_BOTH_Val << ulPos ;
126- break ;
115+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_BOTH_Val << pos ;
116+ break ;
127117
128118 case FALLING :
129- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_FALL_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
130- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_FALL_Val << ulPos ;
131- break ;
119+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_FALL_Val << pos ;
120+ break ;
132121
133122 case RISING :
134- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_RISE_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
135- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_RISE_Val << ulPos ;
136- break ;
123+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_RISE_Val << pos ;
124+ break ;
137125 }
138126
139127 // Enable the interrupt
140- EIC -> INTENSET .reg = EIC_INTENSET_EXTINT ( 1 << digitalPinToInterrupt ( ulPin ) ) ;
128+ EIC -> INTENSET .reg = EIC_INTENSET_EXTINT (1 << digitalPinToInterrupt (pin )) ;
141129 }
142130 else // Handles NMI on pin 2
143131 {
144132 // Configure the interrupt mode
145- switch ( ulMode )
133+ switch (mode )
146134 {
147135 case LOW :
148- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_LOW ;
149- break ;
136+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_LOW ;
137+ break ;
150138
151139 case HIGH :
152- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_HIGH ;
153- break ;
140+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_HIGH ;
141+ break ;
154142
155143 case CHANGE :
156- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_BOTH ;
157- break ;
144+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_BOTH ;
145+ break ;
158146
159147 case FALLING :
160- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_FALL ;
161- break ;
148+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_FALL ;
149+ break ;
162150
163151 case RISING :
164- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_RISE ;
165- break ;
152+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_RISE ;
153+ break ;
166154 }
167155 }
168156}
0 commit comments