Добрый день, подскажите, как написать код, который бы реагировал на нажатие кнопки?
Есть функция, но при нажатии кнопки, получается, что она срабатывает много раз и диоды начинают моргать.
Как сделать так, чтобы после нажатия кнопки выполнение было мгновенным, но при этом через это мгновение ещё раз функция не сработала(не изменила снова
1 в 0
), а ожидала, пока отпустят кнопку, а после продолжила следующий круг
while
и крутила уже
while
как надо с быстрой частотой, пока снова не нажмут кнопку?
При попытке делать интервал, он получается либо длинным, либо как повезёт.
int main(void)
{
DDRD = 0xFF;
PORTD = 0x00;
DDRB = 0b00000000;
PORTB = 0b00000001;
char change = 0;
while(1)
{
if(PINB &= 0b00000000) {
change++;
if(change == 2) {
change = 0;
}
}
if(!change) {
PORTD = 0x00;
}
else {
PORTD = 0xFF;
}
_delay_ms(100);
}
}