Код: Выделить всё
if(.....)
{
timer_COMPA_ON();
........
PORTB |= (1<<2);
timer_COMPB_ON();
}
//======
void timer_COMPA_ON()
{
TCNT1 = 0x00;
OCR1A = 0x1194; // 4500
TCCR1A = 0b00000000; // (0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B = 0b00000101; // (0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (0<<CS11) | (1<<CS10);
TIMSK1 = 0b00000010; // (0<<ICIE1) | (0<<OCIE1B) | (1<<OCIE1A) | (0<<TOIE1);
}
void timer_COMPB_ON()
{
TCNT1=0x00;
OCR1A=0x1194; //4500
OCR1B=0x6978; //2700
TIMSK1 |= (1<<OCIE1B);
}
ISR(TIMER1_COMPA_vect)
{
/*код обслуживания lcd*/
OCR1A += 0x1194; // dec = 4500;
}
ISR(TIMER1_COMPB_vect)
{
PORTB &= ~(1<<2); // инвертировать состояние пин 2 port B ***
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10); //
TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1);
nterrupt_off();
triger = 0;
}


