首頁>Club>
就是按一下中斷的按鍵回到剛通電的狀態
3
回覆列表
  • 1 # 烽火資訊臺

    謝謝邀請:1.題主你提出的問題好像本身就有問題,首先透過按壓一個按鍵使微控制器復位的方法,這個跟中斷沒有關係,每一個微控制器系統都可以設計一個復位電路,這個電路若是手動的就是透過一個按鍵使電路獲得需要的高電平或者低電平來實現硬體復位,復位後微控制器程式從0X00地址開始從新執行程式。例如我們常見的的51微控制器復位電路如下圖:

    復位電路工作過程:

    復位電路工作原理如右圖所示,VCC上電時,使電容C充電,在10K電阻上出現高電位電壓,使得微控制器復位;幾個毫秒後,C充滿,10K電阻上電流降為0,電壓也為0,使得微控制器進入工作狀態。工作期間,按下S22,C放電,在10K電阻上出現電壓,使得微控制器復位。S22鬆手,C又充電,幾個毫秒後,微控制器進入工作狀態。

    題主問到的應該就是這種復位電路的復位方法。

    2.微控制器看門狗復位:

    顧名思義看門狗的意思是放置出錯,有看門狗電路的微控制器,再進行程式設計時可以初始化看門狗引數,設定在規定的時間或者計數脈衝內實現復位看門狗俗稱“餵狗”,程式正常執行時看門狗不會溢位,若程式跑飛滿足不了餵狗的條件看門狗會溢位從而輸出相應電平促使微控制器復位。

    上圖是一個自帶看門口的復位電路,這個在微控制器程式中規定時間輸出訊號給復位電路,電路保持正常,若程式跑飛WDI接收不到訊號就會輸出訊號到nRST給微控制器復位腳使微控制器復位。

    微控制器復位電路就是為了防止程式在複雜條件下跑飛造成不可預知的後果。

  • 2 # 老馬識途微控制器

    你用中斷進行復位是出於什麼要求?要達到什麼目的?要知道程式一旦復位,不只是程式從頭走這麼簡單,微控制器復位後,它的各個功能暫存器的值都有可能恢復為預設值,埠狀態也會恢復成預設狀態。。。。。。

    如果想要實現利用中斷復位,我所知道的有兩種方式:看門狗中斷和無中斷服務程式的中斷。

    一、利用看門狗中斷實現復位

    微控制器中看門狗的作用在這裡就不詳細說了,看門狗中斷的功能之一是,防止微控制器程式陷入預料之外的死迴圈或者微控制器程式跑飛。

    如何實現看門狗中斷復位呢?首先我們要預估一段程式的最長執行時間,估算出來後,再加上一些時間餘量,把這個時間作為看門狗的“餵狗”時間,在這個時間即將達到時,要及時“餵狗”(也就是把看門狗時間配置暫存器的值重新設定),這樣看門狗會重新計時,程式繼續正常執行。一旦程式跑飛或者進入一個預料之外的死迴圈,那麼因為程式一直在這裡執行,不會再執行到“餵狗”程式中,所以當看門狗暫存器的值達到預定值後,就產生了中斷,這個中斷讓微控制器復位。

    二、利用沒有中斷服務程式的中斷復位

    這個功能我在MSP430微控制器上試驗過,沒有再別的微控制器上實驗,所以不確定別的微控制器是否也會這樣。

    具體實現過程是,在程式中使能某個中斷,例如埠中斷,串列埠中斷等,但是不寫這個中斷的服務程式,這樣,當滿足這個中斷的條件出現時,由於找不到中斷服務程式,微控制器就會復位。

  • 中秋節和大豐收的關聯?
  • 上班族有必要買車嗎?