基本的には、単にライトをオンにするためにISR(割り込みサブルーチン)を設定しようとしていますが、ISRは実行されていないようです。私は何か間違っているかどうかを確認するためにマイクロコントローラのデータシートを見てきましたが、何も見つかりませんでした。タイマ比較一致のISRが実行されていない
Heres my code。
#include <asf.h>
int main (void) {
DDRD = 0b10000000;
cli(); // turn off global interrupts
//Timer
TCCR2A |=_BV(WGM21); //CTC mode
TCCR2B |=_BV(CS22)|_BV(CS21); //clk pre-scale 1/256
OCR2A = 0x7d; //125clk cycles = 2ms
TIMSK2 |=_BV(OCIE2A); //enable interrupt on compare matchA
TIFR2 |= _BV(OCF2A); //clear flag
TCNT2 = 0x00; // reset counter
sei(); // enable global interrupts
}
ISR(TIMER2_COMPA_vect) {
PORTD = 0b10000000;
}
ISRの割り込みフラグをクリアしていますか? –
割り込みをオフにしてポーリングすると(割り込みではなく、他のすべて、フラグのクリアなど)、ポーリングすると機能しますか? –