من نیاز به استفاده از اینترآپت اورفلو تایمر 1 دارم و چنین برنامه ای را نوشته ام. نمیدانم چرا کار نمیکند . یا تایمر 1 به اور فلو نمی رسد که نتایج نشان میدهد چندین بار آن را رد میکند. یا تعریف تابع اور فلو مشکلی دارد. لطفا راهنمایی کنید.
کد:
volatile uint32_t measured = 0 ;
volatile uint32_t now = 0;
volatile uint8_t OFC=0,IOF=0;
float modified_measure=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(2000000);
TCCR1A=0;
TCCR1B=B00000100;
TCNT1=0;
TIMSK1=B00000100;
EICRA=B00000010;
interrupts();
}
ISR(TIMER1_OVF_vect) { OFC++;digitalWrite(13, HIGH);}
void loop() {
// put your main code here, to run repeatedly:
Serial.print(TCNT1,BIN);
Serial.print('\t');
Serial.println(OFC);
}