如果想要實(shí)現(xiàn)利用中斷復(fù)位,我所知道的有兩種方式:看門狗中斷和無中斷服務(wù)程序的中斷。
一、利用看門狗中斷實(shí)現(xiàn)復(fù)位
單片機(jī)中看門狗的作用在這里就不詳細(xì)說了,看門狗中斷的功能之一是,防止單片機(jī)程序陷入預(yù)料之外的死循環(huán)或者單片機(jī)程序跑飛。
如何實(shí)現(xiàn)看門狗中斷復(fù)位呢?首先我們要預(yù)估一段程序的最長運(yùn)行時(shí)間,估算出來后,再加上一些時(shí)間余量,把這個(gè)時(shí)間作為看門狗的“喂狗”時(shí)間,在這個(gè)時(shí)間即將達(dá)到時(shí),要及時(shí)“喂狗”(也就是把看門狗時(shí)間配置寄存器的值重新設(shè)置),這樣看門狗會重新計(jì)時(shí),程序繼續(xù)正常運(yùn)行。一旦程序跑飛或者進(jìn)入一個(gè)預(yù)料之外的死循環(huán),那么因?yàn)槌绦蛞恢痹谶@里運(yùn)行,不會再運(yùn)行到“喂狗”程序中,所以當(dāng)看門狗寄存器的值達(dá)到預(yù)定值后,就產(chǎn)生了中斷,這個(gè)中斷讓單片機(jī)復(fù)位。
二、利用沒有中斷服務(wù)程序的中斷復(fù)位
這個(gè)功能我在MSP430單片機(jī)上試驗(yàn)過,沒有再別的單片機(jī)上實(shí)驗(yàn),所以不確定別的單片機(jī)是否也會這樣。
具體實(shí)現(xiàn)過程是,在程序中使能某個(gè)中斷,例如端口中斷,串口中斷等,但是不寫這個(gè)中斷的服務(wù)程序,這樣,當(dāng)滿足這個(gè)中斷的條件出現(xiàn)時(shí),由于找不到中斷服務(wù)程序,單片機(jī)就會復(fù)位。
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635350 -
中斷
+關(guān)注
關(guān)注
5文章
898瀏覽量
41502
原文標(biāo)題:單片機(jī)利用中斷復(fù)位的兩種方式
文章出處:【微信號:changxuemcu,微信公眾號:暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論