2009年10月10日 星期六

MCU 如何判斷為何種 RESET

RESET 百百種,不過MCU如何知道自己是被那種RESET啟動的?


可以利用簡單的判斷式來決定


POR: Power-on Reset  這個就是電路上會有個RC電路,當開電的時後,就是利用這個RC電路來幫忙RESET
EXTR: Pin Reset (MCLR) 這個就是RESET的按鍵,如果按鍵被壓下,即RESET
SWR: RESET Instruction 軟體RESET,像我就常常利用RESET來決定之後的動作
WDTR: Watchdog Timer Reset   看門狗RESET,防止當機的一個不錯的機制
BOR: Brown-out Reset    電壓不足RESET,電源電量不足就會RESET
TRAPR: Trap Conflict Reset   錯誤捕捉reset
IOPR: Illegal Opcode Reset  不合法的執行碼告成的reset
UWR: Uninitialized W Register Reset  尚未定義的reset


 


只要偵測這些狀態,大概就可以把mcu做好冷開機、暖開機、熱開機的設定了


之前常常把BOR 還有LVD 搞混了,原來BOR和LVD 是2個不太類似的功能


BOR : Brown-out Reset    電壓不足即產生RESET


LVD : Low Voltage Detect 電壓不足即產生中斷


reset 偵測比較好做,LVD我現在還不太會使用,現在還不知道那裡設定有問題,如果成功了的話,再來寫BLOG了吧。


不過可以得知MCU 如何reset 也是一個不錯的課題


沒有留言:

張貼留言