找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3015|回复: 5
收起左侧

有关单片机定时器问题

[复制链接]
ID:58628 发表于 2016-12-16 11:59 来自触屏版 | 显示全部楼层 |阅读模式
这几天做个倒计时器,碰到了问题,特来请教:我定时器初值设为(65536-49980)/256及(65536-49980)%256,到时了num++;然后if(num>=1200) num=(num-1200);分钟减1:minite--;
然后问题来了:开始几分钟还正常,每过几分钟后就开始乱来了:小时减1小时,分钟减个几分钟,然后再正常运行几分钟后又这样,
后来我把程序改为if(num>=1200) num=0;后再运行程序就正常了,就是想不明白用上面的程序为什么不行呢?问题出在哪里?
回复

使用道具 举报

ID:58628 发表于 2016-12-16 12:02 来自触屏版 | 显示全部楼层
一开始时也是上面程序,初值设为(65536-50008)
回复

使用道具 举报

ID:58628 发表于 2016-12-16 12:04 来自触屏版 | 显示全部楼层
abc123194 沙发 2016-12-16 12:02 一开始时也是上面程序,初值设为(65536-50008)/256和(65536-50008)%256却又正常运行的
回复

使用道具 举报

ID:73030 发表于 2016-12-16 13:53 来自触屏版 | 显示全部楼层
num要清零的,不清零的话num就跑飞了,刚好在定时器的空挡里就有变,如果超过定时器间歇就变不了了,我是这么理解的。
回复

使用道具 举报

ID:58628 发表于 2016-12-16 14:48 来自触屏版 | 显示全部楼层
zrb5688 发表于 2016-12-16 13:53
num要清零的,不清零的话num就跑飞了,刚好在定时器的空挡里就有变,如果超过定时器间歇就变不了了,我是这 ...

可是我觉得4万多次才加1,远远大于主程序查询周期了,应该每次都能查询到吧,那也就不至造成累加而出错啊
回复

使用道具 举报

ID:19715 发表于 2016-12-16 14:56 | 显示全部楼层
num用unsigned int型
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表