【发布时间】:2019-01-12 18:06:45
【问题描述】:
最近买了一个新的USB示波器,想测avr timer0的频率。有 12 MHz 晶体振荡器连接到 atmega 和 timer0 设置为快速 PWM 模式,无需预分频器。代码如下:
#include <avr/io.h>
int main(void)
{
DDRB = 0x08;
TCCR0 |= (1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00);
OCR0 = 128;
while(1){
}
}
但如果我以 1 毫秒的延迟闪烁 LED,我得到的频率约为 2 MHz。
所以,请向我解释发生了什么,以及为什么计时器会出错(或者我错在哪里)。
【问题讨论】: