【擬似入力】
MPLAB IDEのシミュレータを使ってデバッグを進めていくとき、各ポートのピン
に対する出力はWatch Windowなどで確認できますが、ピンへの入力動作を
確認したいことが多々あります。例えばスイッチの入力や、外部からのパルスの
入力のような場合です。
このようなとき、擬似的に外部からの入力をするため、Stimulus Controllerを
使います。
【Stimulus Controller】
Stimulus Controllerとは、刺激を与えるという意味で、何らかの刺激を外部から
与えることをいいます。
これを使うには、まず Debugger → Stumulus Controller → New Scenario
とすると下記ダイアログが開きます。ここからピンやレジスタに擬似的に入力を
与えることができます。
ここで設定した内容をSave Scenarioで一旦保存すると、次回からは、Debugger →
Stimulus Controller → Open Scenario で同じ物を開くことが可能になります。
【ピンへの擬似入力】
Stimulus Controllerを使ってピンへの入力を擬似的に行うには、下記のように
設定します。
(1) Pin/SFRの欄でクリックするとドロップダウンメニューでピンの
一覧表が表示されますのでここからピンを指定します。
(2) Actionでクリックするとやはりドロップダウンメニューで数種の入力条件が
表示されますのでここから指定します。
・Set High : ピンに「1」を入力する
・Set Low : ピンに「0」を入力する
・Toggle : ピンに1と0を交互に入力する
・Pulse High : ピンに指定した期間「1」を入力する
・Pulse Low : ピンに指定した期間「0」を入力する
(3) ブレークポイントで停止中かRun中にFireボタンを押すと、その行の
指定動作が行われます。
(4) RunかStepでプログラムを進めて入力動作を確認します。
(5) 注意することは、Resetすると入力した条件は失われることです。
再度Fireボタンを押して再入力する必要があります。
またReset後は各ピン、レジスタは「0」の状態になっています。
パルス入力は、ピンでT0CKIなどを選択したときカウント入力用パルス
として便利に使うことができます。
実際の例で説明すると、例えば下記のようなプログラムで、ポートのRC3とRC4
でスイッチの入力チェックをしているとします。
このような場合には下図のようにStimulus Controllerを設定すれば、スイッチ
のオンオフを自由にシミュレーションできます。
Fireボタンを押した時には、Output Windowに表示される下記のような
メッセージで確認ができます。
【レジスタへの擬似入力】
レジスタへの擬似入力もできるようになっていますが、現状のバージョンでは
USARTの受信レジスタ(RCREG)だけがサポートされています。
Pin/SFRの欄で下図のようにRCREGレジスタを選択するとAction欄での選択肢
がFile Message と Direct Message の2種類に変わります。
これでUSARTへの擬似入力が可能になります。
・Direct Message
Comments/Message欄に""で囲んだメッセージを入力しておくと、Run中に
Fireボタンを押した時に、USARTへのメッセージの擬似入力が行われます。
・File Message
Comments/Message欄で指定したファイル(テキスト形式で作成しておく)
が、Run中にFireボタンを押した時、USARTの入力メッセージとして擬似入力
されます。
USARTのシミュレーションの仕方については、別ページで詳しく説明します。