jianhong_wu 发表于 2014-3-5 21:58
第四节:累计定时中断次数使LED灯闪烁。
开场白:
很高兴楼主这么细心认真分享了自己的经验,在认真看了楼主的“第四节:累计定时中断次数使LED灯闪烁。”在T0中断程序中觉得有个问题:
1、TF0=0;书上说CPU响应中断时自动复0;应该不需要TF0=0了吧?
2、TR0=0; 不是关中断,而是T0停止计数;这样便会造成定时器T0不是连续计数,定时可能不准确;
如果我理解有错,烦劳楼主指正,谢谢!
void T0_time() interrupt 1
{
TF0=0; //清除中断标志
TR0=0; //关中断
if(uiTimeCnt<0xffff) //设定这个条件,防止uiTimeCnt超范围。
{
uiTimeCnt++; //累加定时中断的次数,
}
TH0=0xf8; //重装初始值(65535-2000)=63535=0xf82f
TL0=0x2f;
TR0=1; //开中断
} |