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 也是一個不錯的課題
沒有留言:
張貼留言