你的定时器在while里一直初始化,导致定时器无法正常走时,它的预装载寄存器数一直没变 |
如果说你定时器的初始化函数放在while()里,那么你就一直在进行初始化,定时器不会走时的 |
HC6800-ES-V2.0 发表于 2019-2-2 08:47 好的 新人不懂规矩 下次会注意的 谢谢老哥 问题已经解决了 |
#include51.h 发表于 2019-2-2 18:04 新人不懂规矩 下次会注意的 问题已经解决啦 |
参与人数 1 | 黑币 +15 | 收起 理由 |
---|---|---|
![]() | + 15 |
主要是没有自动重载造成的!两个办法: 1、设置自动重载 2、中断内再加载一次初值 |
两位老兄对程序都很精通; |
第一:以后直接贴程序,不要贴这个图,如果要修改,很不方便,可能就没人理你了 第二:你的第二个程序,要把time()函数放在主循环while(1)之前啊,在主循环内,每次都重新设置定时器,当然就是你现在的结果哦。 第三:if (i==1000)这句,最好把条件改为i>=1000 |
非自动重装定时器,中断后要加一句TR0=1;才会继续定时。 |