微控制器執行出錯,或者陷入死迴圈,有可能是硬體電路原因,也有可能是程式原因。
當微控制器執行出錯,直觀的表現就是電路中某一部分不能正常工作,這個時候就需要我們運用電子知識,藉助測量工具,檢查電路中的故障點,看看是不是電路存在斷路、短路等問題,元器件是否正常工作。電壓電流是否正常。
程式陷入死迴圈不一定全是軟體原因,例如對於有的微控制器,需要時鐘配置的,而時鐘配置如果不成功的話,程式不執行,如果晶振電路有問題那麼程式就會一直停留在時鐘配置這段程式中。造成了所謂的死迴圈。
另外如果電路不穩定,造成程式執行過程中微控制器受到干擾,程式就會跑飛。
如果排除的電路的問題,那麼就要檢查程式了,對於簡單的故障,根據經驗可能很快就能定位道程式出錯的位置和出錯原因,那就直接去檢查那一段程式,然後修改。
如果故障現象比較複雜,這個時候最好藉助模擬器,讓程式在模擬環境下執行,運用單步、跳轉、斷點等模擬手段,在模擬過程中觀察程式中的資料或者電路的執行狀態,當資料出錯或電路故障表現出來的時候,程式執行到哪裡了,這個地方可能就存在錯誤,檢查並修改。
對於死迴圈問題,在程式這幾種應儘量避免使用死迴圈,例如可以設定一個最大等待出錯時間,如果超過最大時間,就設定錯誤警示。如果必須使用死迴圈,可以考慮使用看門狗等手段,使微控制器實現超時復位。
微控制器執行出錯,或者陷入死迴圈,有可能是硬體電路原因,也有可能是程式原因。
一、排除電路故障當微控制器執行出錯,直觀的表現就是電路中某一部分不能正常工作,這個時候就需要我們運用電子知識,藉助測量工具,檢查電路中的故障點,看看是不是電路存在斷路、短路等問題,元器件是否正常工作。電壓電流是否正常。
程式陷入死迴圈不一定全是軟體原因,例如對於有的微控制器,需要時鐘配置的,而時鐘配置如果不成功的話,程式不執行,如果晶振電路有問題那麼程式就會一直停留在時鐘配置這段程式中。造成了所謂的死迴圈。
另外如果電路不穩定,造成程式執行過程中微控制器受到干擾,程式就會跑飛。
二、排除程式故障如果排除的電路的問題,那麼就要檢查程式了,對於簡單的故障,根據經驗可能很快就能定位道程式出錯的位置和出錯原因,那就直接去檢查那一段程式,然後修改。
如果故障現象比較複雜,這個時候最好藉助模擬器,讓程式在模擬環境下執行,運用單步、跳轉、斷點等模擬手段,在模擬過程中觀察程式中的資料或者電路的執行狀態,當資料出錯或電路故障表現出來的時候,程式執行到哪裡了,這個地方可能就存在錯誤,檢查並修改。
對於死迴圈問題,在程式這幾種應儘量避免使用死迴圈,例如可以設定一個最大等待出錯時間,如果超過最大時間,就設定錯誤警示。如果必須使用死迴圈,可以考慮使用看門狗等手段,使微控制器實現超時復位。