本帖最后由 huguang0218 于 2010-1-25 14:41 编辑
请问一下各位前辈,我的定时器1初始化源程序如下,按照理论这样设置定时器T1应该定时多久:
void init_t1() //初始化定时器1
{TCNT1=0; //清零定时器
OCR1A=5000; //预置OCR1A的值等于5000
TCCR1A|=(1<<WGM12); //CTC模式
TCCR1B|=(1<<CS12); //256分频
TIMSK|=(1<<OCIE1A); //T/C1匹配中断使能
}
其中晶振为1MH。
我按照理论算出的时间为:256×5000×1us=1,280,000us=1.28S,
其中256为预分频数,5000为TOP值,1us为AT16在晶振为1MH的指令周期.我在开发板上运行发现实际时间与理论时间大相径庭,实际上约为10秒左右。
请指教!谢谢! |