что сделано:
Таймер настраиваю на 85 мс. При частоте контроллера 1250000 (после делителя)
Код: Выделить всё
void InitTimer0()
{
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (0<<WGM00);
// Делитель 1024
TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00);
TCNT0=0x00;
OCR0A= 0x67; //(85мс)
OCR0B=0x00;
TIMSK0=(0<<OCIE0B) | (1<<OCIE0A) | (0<<TOIE0);
}обработка прерывания от таймера
Код: Выделить всё
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
inc++;
if (inc == 2)
{
PORTB ^= (1<<PORTB5);
PORTB ^= (1<<PORTB4);
delay_ms(30);
PORTB ^= (1<<PORTB5);
PORTB ^= (1<<PORTB4);
}
if (inc == 4)
{
delay_ms(215);
inc = 0;
}
if ((inc != 2)&&(inc != 4))
{
PORTB ^= (1<<PORTB5);
//PORTB ^= (1<<PORTB6);
//PORTB ^= (1<<PORTB7);
PORTB ^= (1<<PORTB4);
}
}Понимаю что коряво реализованно, поэтому и не работает, но это все на что сейчас способен мой мозг( Буд рад любой помощи.