Micro Chip のデバック方法:メモ

最近、再び MicroChip社の 1chip CPUを触っているので
  ノウハウをメモっておく

2〜3年前に一度、いわゆるPICと呼ばれている、1Chip マイコンを使ってロボットの制御をしたことがある。 最近、ちょっとしたことからパルスジェネレータ(と言うほど大げさではなく、単に簡単な連続パルスを発生させたいと言うこと<オシレータ用のチップを使えばいいんだが、時間もあるし汎用性を考えて 1Chip CPUでプログラミングしてみようとまたまた寄り道してしまった ^^ヾ)
使ったチップは、手元にあった関係で 12F629 という 8Pin の小さな CPU(昔はこんな小さなパッケージではオシレータなどの単一機能しか動作しなかったが、最近 ・・・と言っても10年以上昔から、こんなパッケージに CPUが入って200円前後で入手できるようになってしまった)
PICのプログラミングに関しては、あちこちに解説ページがあるので、ここではそれは割愛し いきなりデバック方法をメモっておく。

1.出力Pinのモニターとか、内部レジスタのモニター
MPLAB IDE(現状は Ver.8)のシミュレータで、作成したプログラムを走らせてチェックする場合、出力ピンの状態と内部レジスタの値を見ながらデバックしたいと言うことが多い。その時は
「View」> 「Special Function Registers」 と その下の 「Watch」を選択して各ウインドウを表示させる。

更に、必要に応じてプログラムコードウインドウで、ブレークポイントを設定しておいて、「Debugger」>「Run」でプログラムを走らせるとブレークポイント部分で実行がブレークする。そのとき「Special Function Registers」と「Watch」ウインドウを両方見えるようにしておくとブレークポイントでのそれぞれの値がモニターできる。

上記の図では、GPIOの値が 「1」であることから、LSBの「GP0」ポートの出力が「1」(High)でメモリーアドレス0x21(シンボル名が CNT2)の値が 0xF9 であることが分かる。更にこの状態で 「Debugger」>「Animate」を選ぶと、この状態からプログラムがステップバイステップで実行され、ポートやメモリの内容が変化していくのが見える。

2.ストップウォッチ
更に、ブレークポイントから次のブレークポイントまでの実行時間をチェックするには、「Debugger」>「StopWatch」を選択するとストップウォッチウインドウが表示される。ここで、「Zero」ボタンを押してタイマーをリセットしておいて、「Run」を押すと 次のブレークポイントまでの実行時間やステップ数が表示される。

プログラムのシーケンスは間違いが無いのに、思ったような動作をしないと言う場合、結構プログラム中で実行しているウエイトタイマーの設定値が間違っていることが多いので、キモになる部分は予めここでタイミングをチェックしてから PICに焼きこむと無駄が省かれる。



NAME.gif         Ftop_button.gif総アクセス数