Re: pic debug
|
||||
---|---|---|---|---|
資深會員
|
參照:
+1 還有 , 先搞清楚使用零件的規格
發表於: 2009/6/13 19:24
|
|||
|
Re: pic debug
|
||||
---|---|---|---|---|
資深會員
|
慣用方法
硬體DEBUG方法 1.電路圖 2.三用電錶 3.儲存式示波器 軟體DEBUG方法 1.用 UART-TX 監控資料,交案時再閹掉. 2.打電動,睡覺 快速.可靠.好用
發表於: 2009/6/12 21:44
|
|||
|
Re: pic debug 的技巧討論 (歡迎大家來討論)
|
||||
---|---|---|---|---|
資深會員
|
茫茫天數此中求,世道興衰不自由;
萬萬千千說不盡,不如推背去歸休。
發表於: 2009/6/11 19:02
|
|||
The Answer to Life, the Universe, and Everything.
|
||||
|
Re: pic debug
|
||||
---|---|---|---|---|
版主
|
確定硬體是否有問題是第一要件,所以示波器&三用電表示少不了的儀器。有時無法針對硬體做直接的的測試這時可以試著寫隊小的測試軟體來做輔助已測試軟體,這點是很重要的。
很多人寫程式都不太愛畫流程總覺得多舉一此。對軟體初學者而言,這是打基礎的問題,為有正確的流程程式按著流程寫這樣才不容易出錯,而且程式一大有流程圖的話,除錯起來會比較有系統,至少透過流程圖的分析,軟體的邏輯架構出錯的機會會大為降低。寫軟體最怕的錯誤就是一開市的邏輯架構就錯了或不合裡,這樣再怎樣寫程式還是不對的。 一般程式寫完進入除錯的階段,當然此時要有好的除錯工具。除錯的技巧的困難度是大於寫程式的,善用軟體的斷點設定及使用示波器,有些及時的訊號是無法設斷點的這時可以考慮在程式裡利用空腳做輸出的觀察,設定Hi , Low or Toggle 這輸出腳的功能用示波器(或LED) 看這樣就可以獲得很多除錯上的訊息。舉例來說像 APP001 EVM Board 上的 8 個 LEDs 就是很好的除錯輔助工具,可以在程式執行中將想看的資料送到 LED做及時的顯示,例如 UART 的接收、Timer 的中斷時間顯示...
發表於: 2009/6/11 9:38
Edited by Ryang on 2010年05月11日 14:10:59
|
|||
|
Re: pic debug
|
||||
---|---|---|---|---|
資深會員
|
先拿放大鏡檢查有無短路 , 空焊 ( 最簡單 , 省事, 快速 )
檢查線路 LAYOUT 有無錯誤 , 如沒有 再詳查程式 ( 變數名稱 , 指令用法 BTFSS ----> BTFSC ...... ) 偵錯第一步, 就是 組譯時的錯誤訊息 , 再來就如上所言 , 硬體錯誤 絕對死 但容易發現 跟解決 , 但 軟體錯 會把你逼瘋 寫程式 先從大架構完成 , 再將小區塊一個一個加入 , 各區塊盡量能獨立運作(個別啟始變數, 僅保持少數全域變數 ) 才不會牽一髮而動全身, 也容易個別除錯.... 與板主不同 , 我喜歡完成大架構再開始DEBUG , 因為這樣比較容易保持原有設計理念 , 而且往往是主功能 容易完成 , 花俏的小玩意兒( 人機界面 ) 才是讓人傷腦筋........
發表於: 2009/6/10 20:26
|
|||
|
Re: pic debug
|
||||
---|---|---|---|---|
版主
|
我的話我是會先排除硬體的問題為第一優先,一個系統裡如果同時存在硬、軟體問題的話,除錯起來真的很複雜也很難。比如一個簡單的RS-232 傳輸,如果232 的位準轉換及接線錯誤等硬體問題,就算是你軟體功力再強,他還是通訊不了。想一想類似此種問題你說妳會先要解決何種問題? 再延伸下去 TCP/IP 的通訊,按鍵掃描與顯示...等,如果硬體有問題你能確保軟體的功能正常嗎?
還有軟體除錯先從小程式小區塊小函數先開始,由內而外,由小而大。我個人習慣是複雜的程式繪畫流程來分析,程式由小的部份開始寫而且是編寫邊測試,我不喜歡程式全部寫完後再開始除錯因為程式一大除錯的效率就變差,而且也比較難找 Bug。
發表於: 2009/6/10 12:01
|
|||
|
pic debug 的技巧討論 (歡迎大家來討論)
|
||||
---|---|---|---|---|
中級會員
|
試問 各位先進
您們會想盡什麼辦法驗證,是硬體的錯誤,還是軟體的錯誤 ,謝謝 Ryang: 修改一下主題
發表於: 2009/6/10 11:42
Edited by Ryang on 2009年06月11日 09:39:06
Edited by Ryang on 2009年06月11日 09:39:56 Edited by Ryang on 2009年06月11日 11:39:42 |
|||
|