本帖最后由 laopihappy123 于 2021-11-22 20:21 編輯
關于單片機的定時,在我剛剛學習的時候,都是用軟件實現的.但在軟件進行延時的過程中,cpu時間被白白浪費了,此時能利用cpu的只有中斷.
隨著使用的深入,我越發覺得軟件定時這是不是個好方法,雖然它很簡單.
隨后我對硬件定時進行了了解,發現替代的方法有個用定時器來搞的:
在定時器中斷里設置一個標志位,每當定時器運行到設定的時間,就將該位置置位(定時短)或+1(定時時間較長),然后用外部程序去查詢這個標志位,做判斷.
但是我又有了個疑惑,對于后者,假如我要定時30毫秒,定時器溢出時間為1ms,標志位用8位無符號
那到了240的時候,240+30=14 ,溢出了~ 這個怎么處理?
難道我把最大閾值設定為225么? 那假如我有多個不同的延時需要進行處理呢?.... 沒辦法呀~ 難道要設置最大延時限制值么?...
讓人很是摸不著頭腦,求大家幫助一下我呀~
---------------分割線---------------
一天后更新,感謝大家的回復與指教,我看了感覺無地自容.....愧對壇齡,愧對老師....
大家的回復我都有好好看,我會好好學習的,謝謝大家
|