При нажатии на кнопку, микроконтроллер запускает анимацию светодиодов, но потом они просто сменяют одна другую в цикле? ( В данном вопросе я новичок, прошу сильно не ругать ) Вроде они должны заменяться после нажатия кнопки, но после первого нажатия уже на нее не реагируют, и работают на автомате. Что я делаю не правильно?
void main(void)
{
int buttonStatus = 0;
// PORT C
LED_STRIP_PORT &= ~(1<<LED_STRIP_PIN);
LED_STRIP_DDR |= (1<<LED_STRIP_PIN);
while (1)
{
// check ws2812 animation type by pressing the button
if (PINB.0 == 1) {
if (buttonStatus < 3) {
buttonStatus++;
PORTC.0 = 1;
} else {
buttonStatus = 0;
PORTC.0 = 0;
}
}
switch (buttonStatus) {
// first ws2812 animation
case 1:
startFistAnimation();
break;
// second ws2812 animation
case 2:
startSecondAnimation();
break;
// third ws2812 animation
case 3:
startThirdAnimation();
break;
// turn off ws2812
default:
PORTC.0 = 0;
break;
}
}
}