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