MPLAB X IDEのプラグインツールとして用意されている中から、DMCIツール
の使い方を説明します。
DMCIは「Dynamic Monitoring and Control Interface」の略で、名前通りデバッグ中の
変数を変更したり、データをグラフィカルに表示したりすることができるデバッグの
支援ツールです。大きく分けると次のような3つの機能があります。
@ Dynamic Data Control
指定した変数をスライダーを使って変更する機能です。PIC32以外はブレークや
Pauseで停止したときに変更ができます。
A Dynamic Data Input
@と同様の機能を数値で入力するツールです。
B Dynamic Data View
プログラムで配列として格納されている変数の内容をグラフ表示する機能です。
以下では@とBについて実際の使い方を説明します。
A) Dynamic Data Controlの使い方
使うときの手順は次のようにします。
@ プロジェクトを開き、実機デバッグ状態とします。例ではPICkit3での実機デバッグ
で説明します。
A DMCIツールを起動します。(インストールは終わっているものとします)
[Tools] → [Embedded] → [DMCI] → [DMCI Window] で下記DMCIの窓が開きます。
B [Select project]欄に現在プロジェクト管理窓に表示されているプロジェクトが表示
されていますので、ここから対象とするプロジェクトを選択します。例ではsample31。
そしてさらに[Slider1]にチェックを入れた状態の窓が下図となります。
C プログラムを変数で扱うように変更する
スライダによる変更は変更したとき一度だけしか入力されませんので、一時的な
変数を用意しrてこの変数に代入するようにします。例えば下記のようにします。
下記プログラムではPR4に49を代入してタイマ4の周期を指定していますが、この行を
一時的にコメントアウトします。さらにtestという変数を用意します。
そしてPR4にtestを代入するように書き換えます。これを再コンパイルしてデバッグモード
で書き込みます。
D スライダに変数testを設定する
DMCIツールの[Slider 1]のバー上で右クリックすると開く下記ダイアログで変数を
指定します。
・[Dynamic]の欄で変数testを選択します。右側の欄が自動的に設定されます。
・[Interactive Behaviour]の欄で[Apply Run-Time Change]欄にチェックを入れます。
これでプログラムが停止中に変数testの値を0から255の範囲でスライダで設定値を
変更することができるようになります。
E デバッグ中のプログラムを停止させ、スライダを設定する
デバッグ中のプログラムがRun中であれば、[Pause]アイコンでいったん停止させます。
この後、スライダをスライドさせてtestの値を変更します。
F デバッグ実行を再開する
[Continue]アイコンでプログラムに実行を再開すれば、PR4の値がtestの値に変更
されて実行されますので、タイマ4に周期が変わることになります。
B) Dynamic Data Viewの使い方
この機能はプログラム中の配列のデータをグラフで表示しますので、必要な要素数の
配列変数を用意し、値の変化をグラフ化して見たい対象を配列データに一定間隔で
格納します。あとは、Data Viewにこの変数を設定すれば停止したときグラフ化して
表示します。手順は次のようにします。
例では、可変抵抗のA/D変換値を0.2秒間隔で計測している結果を200回分だけ
表示させるようにします。この手順は次のようにします。
@ 配列変数を用意し、ここにデータを格納するようにプログラムを変更する
この例では下図のように変更しました。
メインの初期化の部分で表示用変数「data[200]」と、インデックス変数「j」を定義
してから、この配列を0に初期化しています。
さらにメインループで計測したあとの10ビットのデータTempをdata[0]から
data[199]まで200回だけ格納するようにしています。
A 次にData Viewの設定です。
下図のように、左上のグラフで右クリックして開くポップアップで、[Configure Data Source]
をクリックします。
これで下図のような変数の設定ダイアログが開きますので、この中の[Data Source]
欄でDynamicのdataを指定します。これで右側に自動的に条件が表示されます。
設定はこれだけです。
B この状態でプログラムの実行を開始する
このプログラムを0.2秒間隔で計測しているので、200回計測するのを待つか
適当なところで[Pause]させていったん停止します。
C 停止したあと、DMCIを表示させる
停止したらDMCIのタブをクリックしてDMCIを表示させれば下図ようにグラフ
として表示されます。下図は適当なところで停止させましたので128回ほどの
ところまでのデータを表示しています。