Код
volatile uint32_t count = 1;
void PIOINT1_IRQHandler(void)
{
GPIOIntClear( 1, 9 );
if( count != 7 )
{
count++;
}
else
{
LPC_GPIO0->MASKED_ACCESS[( 1 << 7 )] = ( 0 << 7 );
count = 1;
}
}
int main(void) {
LPC_SYSCON->SYSAHBCLKCTRL |= ( 1 << 6 );
NVIC_EnableIRQ( EINT1_IRQn );
LPC_GPIO0->DIR |= ( 1 << 7 ); // настраиваем PIO0.7 на вывод (светодиод LPCXpresso)
GPIOSetDir( 1, 9, 0 );
GPIOSetInterrupt( 1, 9, 0, 0, 0 );
GPIOIntEnable( 1, 9 );
}
Есть вот такой код обработки прерывания. Суть его такая: при запуске горит светодоид, но при 7 разовом нажатии на кнопку светодиод должен погаснуть. Но работает как то странно. То 7 раз нажать на кнопку и гаснет, то 6, то 4, то 3. Вобщем разные цифры.
В чем я ошибся при кодировании прерывания?