Прошу помощи. Написал такой текст. По сценарию, при удержании кнопки в течении времени декременирования "Count",по истечении этого времени, если кнопка еще нажата, загорается СИД.При отпускании кнопки, сид гаснет. Соответственно на короткие нажатия СИД не должен реагировать. НО он реагирует. Произвожу короткие последовательние нажатия и он начинает помаргивать... Подскажите, пожалуйста, в чем ошибка, чего я не учел?
CODE
int main()
{
ConfigureButton();
//Main Loop
while(1)
{
if((AT91C_BASE_PIOA->PIO_PDSR & 0x00100000) == 0)//Если кнопка нажата.
{
long int Count = Delay_3sec;//Запись в Count числа
while (((AT91C_BASE_PIOA->PIO_PDSR & 0x00100000) == 0)&&(Count > 0))//Если кнопка нажата и Count не пуст.
{
Count = Count -1; //Декременируем Count.
}
AT91C_BASE_PIOA->PIO_CODR = 0x00000001; //0 on PA0, LED on/ Count пуст и кнопка еще ножата, тогда зажигаем LED.
}
else //Если кнопка не нажималась (или ее отпустили).
{
AT91C_BASE_PIOA->PIO_SODR = 0x00000001; //1 on PA0, LED off //Гасим LED.
}
}
}