@@ -68,101 +68,89 @@ static void __initialize()
68
68
* \brief Specifies a named Interrupt Service Routine (ISR) to call when an interrupt occurs.
69
69
* Replaces any previous function that was attached to the interrupt.
70
70
*/
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 )
74
72
{
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 ;
78
76
79
- if ( digitalPinToInterrupt ( ulPin ) == NOT_AN_INTERRUPT )
80
- {
81
- return ;
82
- }
77
+ if (digitalPinToInterrupt (pin ) == NOT_AN_INTERRUPT )
78
+ return ;
83
79
84
- if ( !enabled )
85
- {
86
- __initialize () ;
87
- enabled = 1 ;
80
+ if (!enabled ) {
81
+ __initialize ();
82
+ enabled = 1 ;
88
83
}
89
84
90
85
// Assign pin to EIC
91
- pinPeripheral ( ulPin , PIO_EXTINT ) ;
86
+ pinPeripheral (pin , PIO_EXTINT ) ;
92
87
93
88
// 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 ;
96
91
97
92
// Check if normal interrupt or NMI
98
- if ( ulPin != 2 )
93
+ if (pin != 2 )
99
94
{
100
95
// 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 ;
108
100
}
109
101
110
102
// Configure the interrupt mode
111
- ulPos = ((digitalPinToInterrupt ( ulPin ) - (8 * ulConfig ) ) << 2 ) ;
112
- switch ( ulMode )
103
+ pos = ((digitalPinToInterrupt (pin ) - (8 * config )) << 2 );
104
+ switch (mode )
113
105
{
114
106
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 ;
117
109
118
110
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 ;
122
113
123
114
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 ;
127
117
128
118
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 ;
132
121
133
122
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 ;
137
125
}
138
126
139
127
// Enable the interrupt
140
- EIC -> INTENSET .reg = EIC_INTENSET_EXTINT ( 1 << digitalPinToInterrupt ( ulPin ) ) ;
128
+ EIC -> INTENSET .reg = EIC_INTENSET_EXTINT (1 << digitalPinToInterrupt (pin )) ;
141
129
}
142
130
else // Handles NMI on pin 2
143
131
{
144
132
// Configure the interrupt mode
145
- switch ( ulMode )
133
+ switch (mode )
146
134
{
147
135
case LOW :
148
- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_LOW ;
149
- break ;
136
+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_LOW ;
137
+ break ;
150
138
151
139
case HIGH :
152
- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_HIGH ;
153
- break ;
140
+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_HIGH ;
141
+ break ;
154
142
155
143
case CHANGE :
156
- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_BOTH ;
157
- break ;
144
+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_BOTH ;
145
+ break ;
158
146
159
147
case FALLING :
160
- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_FALL ;
161
- break ;
148
+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_FALL ;
149
+ break ;
162
150
163
151
case RISING :
164
- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_RISE ;
165
- break ;
152
+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_RISE ;
153
+ break ;
166
154
}
167
155
}
168
156
}
0 commit comments