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サイクルづつステップ実行を行ってしまうと、ものすごい時間が掛かってしまうため注意が必要です。
[PIC]MPLABでデバッグ時に,入力用ポートの値を操作する(Stimulusウィンドウ)
関連記事
コメントを残す