#ifndef F_CPU
#define F_CPU 16000000UL
#endif

#include <avr/io.h>
#include <util/delay.h>
enum { ST_DISARM, ST_ARM, ST_ERROR };
static void blink(uint8_t n,uint16_t ms){
  for(uint8_t i=0;i<n;i++){ PORTB|=(1<<PB5); _delay_ms(ms); PORTB&=~(1<<PB5); _delay_ms(ms); }
}
int main(void){
  DDRB|=(1<<PB5);
  volatile uint8_t state=ST_DISARM;
  for(;;){
    switch(state){
      case ST_DISARM: blink(1,600); break;   // редко
      case ST_ARM:    PORTB|=(1<<PB5); break; // ровно горит
      case ST_ERROR:  blink(5,80);  break;    // часто
    }
    _delay_ms(300);
  }
}
