[閒聊] 找bug方法
大家好,
第一次在這邊po文,不到之處請多多包涵
我為什麼想聊 Debug 的問題呢?
一來是分享
剛學單晶片,學得很痛苦,因為bug找不出來
問學長怎麼找,他總是回說「靠經驗」,或「看電壓有沒有錯」
至終連他也找不出來,就說「我不知道」
他說不出所以然,我也一頭霧水,最終只得自己摸索
希望如果有人bug找不出問題,或許能幫一些些忙
二來是請教高手
我自己摸單晶片也才一年多,不能算非常熟
因此也想請教高手,是否也能分享一些找bug的技倆
以下簡單敘述我自己摸出來,找bug的方法
我會把省時間的程序放前面,供大家參考
預防重於治療
重點:程式硬體還是一小塊一小塊寫,沒問題再繼續加上去
這真的很重要。我以前迷迷糊糊,犯下許多很白痴的錯誤,
搞得不知是軟體出問題,還是硬體出問題,
沒人告訴我該一步步慢慢來,程式一行行慢慢寫,搞得浪費很多時間
我會把成功的每個版本的程式都備份,隨時能回頭複製貼上,回頭檢驗硬體
治療:Debug
1. 先檢查電源
如果昨天還好好的電路,今天發現壞掉,我會先檢查電壓
常常真的是電池沒電,或其他神奇的原因,讓原本12V的電壓降到10V
TL074 OP 放大器沒辦法工作,輸出當然有問題
2. 換晶片
如果有焊腳座,而且有備份的IC可用,把懷疑有問題的IC換掉應該很快
3. 量晶片接腳的訊號
這可以分兩部份
A. 量看看電壓對不對。
這個方法可以幫我確定,每個 IC 的電壓有沒有都對。
ic沒電,再強的ic也沒辦法工作
拿一根鐵絲或鐵針,把供電電壓,Vcc Vee Gnd接到三用電錶量電壓
我都實際去量,一來求心安,二來求保險。
以前都用電錶量有通會畢就好,後來還是覺得開電源量電壓比較保險
B. 量輸出的訊號
這方法可能比較麻煩,可以晚點作,不過因為也是量訊號,就把他放進來
方法也是拿鐵絲或鐵線接示波器,確定軟體沒問題後,燒進微處理器,
執行看量輸出腳位訊號對不對
Ex 中斷該出現有沒有出現; 傳出一個訊號,有沒有訊號傳回來,
訊號是不是你要的等等,不詳述
4. 分區比較,這應該是重點
依照不同功能,盡可能把電路分區個別測。
重點在比較,藉由你能想得到的方法,比較出問題出在哪
是A區電路出問題? 那把A拿掉,看有A和沒A差在哪裡
是8051?電容?電路?可以換的都換,看有換和沒換差別在哪
以前學長碰過一個怪問題:
昨天可以跑得,今天不能跑。找了很久找不出來,最後電腦重新開機就好了。
他說是因為電腦中毒
這也是比較:比較開機前,開機後...
5. 寫小程式分區測試,這蠻花時間的,不太建議
執行一段程式亮一次燈,數燈的次數,看8051執行到哪裡出問題
或檢查看有沒有執行中斷,在中斷讓P1_0輸出 0 1 0 1 之類的
更花時間方法是獨自專對某個功能寫一段小程式,獨自檢驗
真的真的不行,或許可以重作
我曾經卡一整天找不到問題,結果重作就成功了
以上是我小小經驗分享,我很希望我剛學8051有人教我這些,只可惜沒有
希望我能為其他人學習道路上,幫一點點忙
不足、或認為不對的地方,也歡迎批評指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.43.232
→
04/25 19:20, , 1F
04/25 19:20, 1F
→
04/25 19:20, , 2F
04/25 19:20, 2F
推
04/25 20:19, , 3F
04/25 20:19, 3F
推
04/25 22:22, , 4F
04/25 22:22, 4F
→
04/25 22:23, , 5F
04/25 22:23, 5F
推
04/25 23:04, , 6F
04/25 23:04, 6F
→
04/25 23:06, , 7F
04/25 23:06, 7F
→
04/26 09:46, , 8F
04/26 09:46, 8F
推
04/26 10:05, , 9F
04/26 10:05, 9F
→
04/26 10:07, , 10F
04/26 10:07, 10F
→
04/26 10:08, , 11F
04/26 10:08, 11F
→
04/26 12:59, , 12F
04/26 12:59, 12F
→
04/26 12:59, , 13F
04/26 12:59, 13F
→
04/26 13:00, , 14F
04/26 13:00, 14F
→
04/26 13:01, , 15F
04/26 13:01, 15F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章