[PIC]MPLABでデバッグ時に,入力用ポートの値を操作する(Stimulusウィンドウ)

MPLABでは実際のマイコンチップを用意しなくても、IDE上に用意されたシミュレータを使用してプログラムをデバッグする事ができます。

また、PICマイコンでは入出力ピンを使用して外部とのデータをやり取りを行います。

この際に出力ピンについては、PORTAやPORTBなどのレジスタ値を見れば0/1のどちらが出力されているか、確認する事ができます。一方、入力については、実機上はボタンなどを用意すれば入力のON/OFFを変更できますが、シミュレータ上ではボタンが無いのでピンの状態を変更する事が出来ません。

このようなときはStimulus機能を使用することで、ピン状態を変更する事が可能です。
Stimulusというのは、外部からシステムへの入力という意味ですが、辞書的には”刺激”,”誘因”,”動機”といった意味もあるようです。




Stimulus機能の使い方は、以下の通りです。

DebuggerメニューよりStimulus->New Workbookをクリックします。


Stimulusウィンドウが表示されます。
たくさんのタブがありますが、まずはAsynchタブで操作を行いうのが基本です。



Pin/FSRをクリックして、どのピンのON/OFFを操作したいかを指定します。


次にActionを指定します。今回はToggleで確認します。



プログラムをステップ実行し、ピンのON/OFFを操作したいタイミングになったら、Fireの列にある”>”をクリックします(ボタンになっています)。
その後Step Intoで、もう1ステップ進めると入力ピンの状態が変わります。
今回の例では、PortBの最下位ビットが反転されます。



Fireの列の”>”をクリックしてStep Intoを押すたびに、値が交互に切り替わります。

  ↓ ↑ 交互に変わる


これで、Fireのボタンがトグルスイッチとみなされる様になりました。
Fireのボタンを押した後に、Step Intoなどで1命令以上、プログラムを進めることを忘れないようにしてください(これはピンのI/O状態がレジスタに取り込まれるまで、1クロックサイクル必要なためです)。


また、ボタンを押したときの動作はトグル以外にも色々指定できます。

上記の例では、順に”常にOnにする”, “常にOffにする”, “一定時間だけOnにする(10命令分)”, “一定時間だけOnにする(20mSec分)”の定義をしています。
時間指定の場合は、実時間ではなくデバッグ環境下の仮想時間がベースなので、1Secなどを指定したうえで1サイクルづつステップ実行を行ってしまうと、ものすごい時間が掛かってしまうため注意が必要です。

関連記事

コメントを残す

メールアドレスが公開されることはありません。