我在哪里找到代表它使用中断的代码?我在Arduino的子文件夹中经历了wiring.c,但它只导致了这个功能。
问题是,当我为Timer / Comp0启用 CTC模式时,LCD会输出完整的乱码,但当我禁用 CTC模式时,它可以正常工作。
这是定时器初始化代码:
void timerCompare0_ini(void){ // -Initialization of the Timer Compare 0
TCCR0A = 0; // This regulates the menu navigation arrow to show where user is pointing
TCCR0B = 0;
TCNT0 = 0;
OCR0B = 256;
// TCCR0A |= (1 << COM0B0) | (1 << COM0B1);
TCCR0A |= (1 << WGM01); // -CTC mode
TCCR0B |= ((1 << CS02) | (1 << CS00)); // -1024 prescaler
TIMSK0 |= (1 << OCIE0B); // -Enable timer compare interrupt
}
答案 0 :(得分:0)
wiring.c 是个好地方。 delay()使用micros(),它取决于运行timer0和溢出中断。 delayMicroseconds()根据指令执行内部暂停。 BTW但两种方法都有bug,因为当看门狗设置的时间比请求的延迟短时,它会重新启动CPU。即你需要实现自己的功能。