AIRCOOLED/RD

高回転は焼付きが怖いんだよね~

デバッグする・・・その3 (動作確認OK)

イメージ 1
→前回の2進表記に変えるところまでです。
Set High:(1)ピンに5V入力
Set Low :(0)ピンに0V入力
を表します。
画像ではValueのところが
01000000になっています。
この状態はRB6がSet High(5V)である事を表しますが、前回RB7の入力条件は、Set Highにしてあるので、本来は10000000となる筈ですが、2進表記に変更した後のこの時点では、まだプログラムを実行していない為、入力条件に伴うプログラムの結果を反映していないと思われます…?

MPLAB IDEの機能で、入力の条件を変えた後に条件が実行されると、数字の色が赤く変わるのですが
この時は、16進表記から、2進表記に変更した事で数字が赤字になったもので、ピンの条件変更が原因ではありません。
この時の数字の並びは、前回MPLABを起動した時、RB7が実行された時の入力条件が影響してこうなったと思います。

ステップ実行の最中に、入力条件を変更して行くと、前回読み込んだプログラムの実行条件と同時に実行されることになり、各ビットの数字が逆の動きをしたように錯覚しそうになりますが、この場合でも正しく動いている事に間違いないと思われます。
これは、プログラムの条件を満たした後、条件が実行される為だと思われます。
※こう言う事を細かく書き過ぎると、余計解り難くしている可能性があります…ここは、余り気にしない方が良いのかも?知れませんが、一応、備忘録と言う事で…(爆)

では!
ここからは、RB7、RB6が擬似的に変化するのを見ていきます。
入力条件ごとに、ステップオーバーボタンを押してポートBの RB7 と RB6 の変化を見たいと思います。
デバッグでのプログラム動作確認は、実際にスイッチのON OFF 出来ないので、擬似的なスイッチとして、Stimulus ウィンドウのところで RB7 の入力状態(電圧)を変える必要があります。

イメージ 2
入力条件は、Set high を選択、2進表記に変更後の状態です。
Value」のところは
01000000になってます。
下は今回のプログラムのソースファイルです。
ステップ実行で、プログラムが実行される毎に矢印が移動していきます。

イメージ 3
ステップ実行しました。
Set high が実行されて一番左側のRB7のところが0から1に変わりました。
RB6のところは、変更する条件が実行されていないので(1)のままです。
プログラムは、RB7の状態が(1)なのかを確認する行に移動しています。

イメージ 4
ステップ実行で数字は、変化無しです。
変化が無かったので、数字の色が黒になっています。
RB7の入力条件が(1)だったので、矢印は下のRB6=0の条件を読み込む行に移動しました。
Tochinさんの説明では、この時RB6ポートに値が代入されて変化しているそうです。

イメージ 5
ステップ実行で、数字が赤く変化して、左から2行目のRB6のところが(0)に変わりました。
Set Highの入力条件が実行された事になります。

イメージ 6
ステップ実行で、上の所に戻りました。
ここからは、入力条件を変えなければ、同じ事を繰り返す事になります。

次に、入力条件をSet Lowに変更します。

イメージ 7
RB7のSet Lowの行の Fire をクリックします。
この時「Value」のところの数字は、まだ何も変わってません。

イメージ 8
ステップ実行します。
左から2行目、RB6のところが(1)から(0)に変わりました。
矢印は、RB7==1の行へ移動して、現在のRB7の入力条件を判断します。
現在RB7は(0)です。

イメージ 9
ステップ実行します。
条件が変わっていないので数字は同じままです。
RB7の状態による条件判断で、RB6=1のところに移動しました。
つまり…

イメージ 10
ステップ実行で、RB7がSet Low の入力条件が実行されて、左から2行目の数字が(1)に赤く変化しました。

以上の結果から、デバッグでプログラム流れ、ピンの変化は、正常に動作した事になります。



で、… 良いのかな?…(汗)


次は…
PICにプログラムを書き込みます。


参考にしたサイトの一部です。MPLABのバージョンが以前の記事が殆んどですが基本は同じです。
電子工作 PICを動かしてみる-デバッグする
MPLABの使い方 より
Ver7.3より 7-3擬似入力の仕方(Stimulus Controller)
Ver6.3Xより 6.シミュレーション、デバッグ
 8. MPLAB でデバッグする方法