找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1984|回复: 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;后再运行程序就正常了,就是想不明白用上面的程序为什么不行呢?问题出在哪里?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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就跑飞了,刚好在定时器的空挡里就有变,如果超过定时器间歇就变不了了,我是这么理解的。
回复

使用道具 举报

5#
ID:58628 发表于 2016-12-16 14:48 来自手机 | 只看该作者
zrb5688 发表于 2016-12-16 13:53
num要清零的,不清零的话num就跑飞了,刚好在定时器的空挡里就有变,如果超过定时器间歇就变不了了,我是这 ...

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

使用道具 举报

6#
ID:19715 发表于 2016-12-16 14:56 | 只看该作者
num用unsigned int型
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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