找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2545|回復: 5
打印 上一主題 下一主題
收起左側(cè)

有關單片機定時器問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:58628 發(fā)表于 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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

6#
ID:19715 發(fā)表于 2016-12-16 14:56 | 只看該作者
num用unsigned int型
回復

使用道具 舉報

5#
ID:58628 發(fā)表于 2016-12-16 14:48 來自手機 | 只看該作者
zrb5688 發(fā)表于 2016-12-16 13:53
num要清零的,不清零的話num就跑飛了,剛好在定時器的空擋里就有變,如果超過定時器間歇就變不了了,我是這 ...

可是我覺得4萬多次才加1,遠遠大于主程序查詢周期了,應該每次都能查詢到吧,那也就不至造成累加而出錯啊
回復

使用道具 舉報

地板
ID:73030 發(fā)表于 2016-12-16 13:53 來自手機 | 只看該作者
num要清零的,不清零的話num就跑飛了,剛好在定時器的空擋里就有變,如果超過定時器間歇就變不了了,我是這么理解的。
回復

使用道具 舉報

板凳
ID:58628 發(fā)表于 2016-12-16 12:04 來自手機 | 只看該作者
abc123194 沙發(fā) 2016-12-16 12:02 一開始時也是上面程序,初值設為(65536-50008)/256和(65536-50008)%256卻又正常運行的
回復

使用道具 舉報

沙發(fā)
ID:58628 發(fā)表于 2016-12-16 12:02 來自手機 | 只看該作者
一開始時也是上面程序,初值設為(65536-50008)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表