День добрый, по таймерам в ATmega328p вопрос, timer1 CTC mode, глобальное прерывание включил, в таймере его-же разрешил, делитель задал, обработчик написал, не срабатывает и всё тут В чём проблема, где туплю? void timer_init(){ cli(); TCCR1B = 0b00001100;// set prescaler to 256 and set CTC mode for timer1 TIMSK1 = 0b00000010;// enable interrupt OCR1AH = 0b10000000;//set compare on 32768 OCR1AL = 0b00000000; sei(); } ISR (TIMER1_COMPA_vect){ flag = 1; PORTB = ~PORTB; } int main(void) { timer_init(); DDRB = 0xff; }
Комментарии: 12
Doktor
И он инилтзируется перманентно void timer_init(){ cli(); TCCR1B = 0b00001100;// set prescaler to 256 and set CTC mode for timer1 TIMSK1 = 0b00000010;// enable interrupt OCR1AH = 0b10000000;//set compare on 32768 OCR1AL = 0b00000000; sei(); } ISR (TIMER1_COMPA_vect){ flag = 1; PORTB = ~PORTB; } int main(void) { timer_init(); DDRB = 0xff; for (;;) {твой код} } Я сегодня понял 2 вещи и одну не понял)) 0. Я - дебил (но это я знал и раньше, но все же;) 1. Аттини85 нихуя не умеет даже в 200Гц (8МГц частота у неё стоит) 2. Датчику индуктивности таки нужна общая земля (с какого хуя - не понятно, правда)
Argentina
А что такое flag = 1?
Anonim
забытая какаха;)
Haski
Да, к чему то такому и пришёл То что должно делать полезные вещи)