Помещу кусок кода сюда, так как в комментариях общаться неудобно.
int __attribute__((noreturn)) main(void)
{
DDRB |= (1<<LED_PIN); //Делаем нужный пин выходом
//uint8_t i=0;
uint8_t a=MAX_LED;
clear_LED();
switch (rezim)
{
case 1:
r_01();
break;
case 3:
case 4:
raduga(MAX_LED);
break;
}
while (1){
switch (rezim){
case 0://режим поворотника
if(a==0){
a=MAX_LED;
_delay_ms(200); // для красоты
clear_LED();
ws2812_sendarray((uint8_t *)led,MAX_LED*3);
_delay_ms(500); // для красоты
}
led[a].r=RED;led[a].g=GREEN;led[a].b=BLUE;
ws2812_sendarray((uint8_t *)led,MAX_LED*3);
_delay_ms(STEP);
a--;
break;
case 1:
step_right_loop();
ws2812_sendarray((uint8_t *)led,MAX_LED*3);
_delay_ms(STEP*MAX_LED);
break;
case 3:
step_right_loop();
ws2812_sendarray((uint8_t *)led,MAX_LED*3);
_delay_ms(STEP*3);
break;
case 2:
if (a%2==0) full(); else clear_LED();
ws2812_sendarray((uint8_t *)led,MAX_LED*3);
_delay_ms(STEP*10);
a++;
break;
case 4:
right_in();
//_delay_ms(200); // для красоты
//clear_LED();
ws2812_sendarray((uint8_t *)led,MAX_LED*3);
//_delay_ms(500); // для красоты
break;
}
}
}