カウントダウン・タイマー ソフトデバッグ説明 |
|
以下ではMPLABを使用したソフトウェアデバッグ作業のポイントを書きます。
デバッグの進め方はステップデバッグ方法とブレークポイントによるデバックを併用して行います。 それらの方法は「LEDフラッシャー」、「サインボード」のページを参照して下さい。 ここでは、デバッグを進めるために処理ステップの一部を変更する方法を紹介します。
実際のアッセンブル結果の一部を以下に示します。赤文字の部分がアッセンブルされている行です。 LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00060 #DEFINE _DEBUG
00153 #IFDEF _DEBUG
0042 30FF 00154 MOVLW D'255' ;(Debugging step)
00155 #ELSE
00156 MOVLW D'43' ;Set Hard timer value
00157 #ENDIF
00173 #IFNDEF _DEBUG
00174 BTFSC PORTA,RA4 ;Stop switch ON ?
00175 #ENDIFLOC OBJECT CODE LINE SOURCE TEXT
VALUE
00060 ;#define _debug
00153 #IFDEF _DEBUG
00154 MOVLW D'255' ;(Debugging step)
00155 #ELSE
0047 302B 00156 MOVLW D'43' ;Set Hard timer value
00157 #ENDIF
00173 #IFNDEF _DEBUG
0051 1A05 00174 BTFSC PORTA,RA4 ;Stop switch ON ?
00175 #ENDIF
ブレークポイントはPC=009Bhと009Dhに設定します。 リセット後、 00 00 00 01 の時はPC=009Bhに停止します。PC=009Dhはタイムアウトチェックを行った後のステップなので、0Fが01の時には-1した結果が0なのでタイムアウト処理にジャンプします。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||