擬似入力の仕方(Stimulus Controller)


【擬似入力】

 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のシミュレーションの仕方については、別ページで詳しく説明します。








   目次ページへ