找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3122|回復: 5
打印 上一主題 下一主題
收起左側

關于單片機長延時函數(shù)

[復制鏈接]
跳轉到指定樓層
樓主
ID:56665 發(fā)表于 2019-8-28 08:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
長延時用Delay會影響系統(tǒng)正常工作,不用Delay只用定時器分別延時10秒,15分鐘、1小時封裝成函數(shù),需要使用延時時就調用這個函數(shù),怎樣做才能達到這個要求。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:604918 發(fā)表于 2019-8-28 21:19 | 只看該作者
你可以考慮while(1)再使用中斷跳出來
回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2019-8-28 22:09 | 只看該作者
只要學會使用定時器和標志位,就可以獲得大于1us的任意時長的延時時間。沒有人會去考慮封裝成函數(shù)。
回復

使用道具 舉報

地板
ID:123289 發(fā)表于 2019-8-29 15:07 | 只看該作者
“定時器”這三個字的意思是什么呢?就只能一個DELAY嗎?
回復

使用道具 舉報

5#
ID:351097 發(fā)表于 2019-8-30 10:15 | 只看該作者
可以考慮搞一個系統(tǒng)時間計時變量long類型的 system_time,在寫一個1ms的定時器中斷程序,在定時器中斷處理函數(shù)里面讓system_time++,這樣每1ms,system_time就會累加1。假設要延時10秒,可以用old_time = system_time獲取舊時間,然后用new_time  = system_time獲取新時間,再判斷if(new_time - old_time >=10000),如果滿足,就說明10秒到了。延時15分鐘,還是延時1小時,也是可以這樣處理。
回復

使用道具 舉報

6#
ID:494577 發(fā)表于 2019-8-30 16:01 | 只看該作者
使用定時器和標志位,設置好所需的初始值就行  不需要封裝成函數(shù)了,定時器是不能封裝成函數(shù)的
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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