@@ -68,99 +68,87 @@ 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
7977 // Assign pin to EIC
80- if ( pinPeripheral (ulPin , PIO_EXTINT ) != RET_STATUS_OK )
81- {
82- return ;
83- }
78+ if ( pinPeripheral (pin , PIO_EXTINT ) != RET_STATUS_OK )
79+ return ;
8480
85- if ( !enabled )
86- {
87- __initialize () ;
88- enabled = 1 ;
81+ if (!enabled ) {
82+ __initialize ();
83+ enabled = 1 ;
8984 }
9085
9186 // Assign callback to interrupt
92- callbacksInt [digitalPinToInterrupt ( ulPin )]._ulPin = ulPin ;
93- callbacksInt [digitalPinToInterrupt ( ulPin )]._callback = callback ;
87+ callbacksInt [digitalPinToInterrupt (pin )]._ulPin = pin ;
88+ callbacksInt [digitalPinToInterrupt (pin )]._callback = callback ;
9489
9590 // Check if normal interrupt or NMI
96- if ( digitalPinToInterrupt ( ulPin ) != EXTERNAL_INT_NMI )
91+ if ( digitalPinToInterrupt ( pin ) != EXTERNAL_INT_NMI )
9792 {
9893 // Look for right CONFIG register to be addressed
99- if ( digitalPinToInterrupt ( ulPin ) > EXTERNAL_INT_7 )
100- {
101- ulConfig = 1 ;
102- }
103- else
104- {
105- ulConfig = 0 ;
94+ if (digitalPinToInterrupt (pin ) > EXTERNAL_INT_7 ) {
95+ config = 1 ;
96+ } else {
97+ config = 0 ;
10698 }
10799
108100 // Configure the interrupt mode
109- ulPos = ((digitalPinToInterrupt ( ulPin ) - (8 * ulConfig ) ) << 2 ) ;
110- switch ( ulMode )
101+ pos = ((digitalPinToInterrupt (pin ) - (8 * config )) << 2 );
102+ switch (mode )
111103 {
112104 case LOW :
113- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_LOW_Val << ulPos ;
114- break ;
105+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_LOW_Val << pos ;
106+ break ;
115107
116108 case HIGH :
117- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_HIGH_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
118- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_HIGH_Val << ulPos ;
119- break ;
109+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_HIGH_Val << pos ;
110+ break ;
120111
121112 case CHANGE :
122- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_BOTH_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
123- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_BOTH_Val << ulPos ;
124- break ;
113+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_BOTH_Val << pos ;
114+ break ;
125115
126116 case FALLING :
127- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_FALL_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
128- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_FALL_Val << ulPos ;
129- break ;
117+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_FALL_Val << pos ;
118+ break ;
130119
131120 case RISING :
132- // EIC->CONFIG[ulConfig].reg = EIC_CONFIG_SENSE0_RISE_Val << ((digitalPinToInterrupt( ulPin ) >> ulConfig ) << ulPos) ;
133- EIC -> CONFIG [ulConfig ].reg |= EIC_CONFIG_SENSE0_RISE_Val << ulPos ;
134- break ;
121+ EIC -> CONFIG [config ].reg |= EIC_CONFIG_SENSE0_RISE_Val << pos ;
122+ break ;
135123 }
136124
137125 // Enable the interrupt
138- EIC -> INTENSET .reg = EIC_INTENSET_EXTINT ( 1 << digitalPinToInterrupt ( ulPin ) ) ;
126+ EIC -> INTENSET .reg = EIC_INTENSET_EXTINT (1 << digitalPinToInterrupt (pin )) ;
139127 }
140128 else // Handles NMI
141129 {
142130 // Configure the interrupt mode
143- switch ( ulMode )
131+ switch (mode )
144132 {
145133 case LOW :
146- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_LOW ;
147- break ;
134+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_LOW ;
135+ break ;
148136
149137 case HIGH :
150- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_HIGH ;
151- break ;
138+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_HIGH ;
139+ break ;
152140
153141 case CHANGE :
154- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_BOTH ;
155- break ;
142+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_BOTH ;
143+ break ;
156144
157145 case FALLING :
158- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_FALL ;
159- break ;
146+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_FALL ;
147+ break ;
160148
161149 case RISING :
162- EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_RISE ;
163- break ;
150+ EIC -> NMICTRL .reg = EIC_NMICTRL_NMISENSE_RISE ;
151+ break ;
164152 }
165153 }
166154}
0 commit comments