回覆列表
  • 1 # 老馬識途微控制器

    微控制器執行出錯,或者陷入死迴圈,有可能是硬體電路原因,也有可能是程式原因。

    一、排除電路故障

    當微控制器執行出錯,直觀的表現就是電路中某一部分不能正常工作,這個時候就需要我們運用電子知識,藉助測量工具,檢查電路中的故障點,看看是不是電路存在斷路、短路等問題,元器件是否正常工作。電壓電流是否正常。

    程式陷入死迴圈不一定全是軟體原因,例如對於有的微控制器,需要時鐘配置的,而時鐘配置如果不成功的話,程式不執行,如果晶振電路有問題那麼程式就會一直停留在時鐘配置這段程式中。造成了所謂的死迴圈。

    另外如果電路不穩定,造成程式執行過程中微控制器受到干擾,程式就會跑飛。

    二、排除程式故障

    如果排除的電路的問題,那麼就要檢查程式了,對於簡單的故障,根據經驗可能很快就能定位道程式出錯的位置和出錯原因,那就直接去檢查那一段程式,然後修改。

    如果故障現象比較複雜,這個時候最好藉助模擬器,讓程式在模擬環境下執行,運用單步、跳轉、斷點等模擬手段,在模擬過程中觀察程式中的資料或者電路的執行狀態,當資料出錯或電路故障表現出來的時候,程式執行到哪裡了,這個地方可能就存在錯誤,檢查並修改。

    對於死迴圈問題,在程式這幾種應儘量避免使用死迴圈,例如可以設定一個最大等待出錯時間,如果超過最大時間,就設定錯誤警示。如果必須使用死迴圈,可以考慮使用看門狗等手段,使微控制器實現超時復位。

  • 中秋節和大豐收的關聯?
  • 有個同事很宅,非常喜歡動漫和蘿莉,你覺得他到底是因為喜歡動漫變宅了,還是先宅了就會喜歡動漫?