この課題では、ADCウィンドウ比較(WCMP)割り込みを使ってUARTターミナルとData Visualizer内の グラフへのADCデータ出力をトリガするアプリケーションを開発します。
ADC ウィンドウ比較機能を使うと、予め定義した方法で ADC 出力にフィルタを適用できます。この機 能は、ウィンドウ コンパレータ割り込みイネーブル(INTCTRL.WCOMP)ビットがセットされている時に 有効です。4 通りのウィンドウモード オプションを選択できます(値がウィンドウより小さい時、値がウ ィンドウより大きい時、値がウィンドウ内である時、値がウィンドウ外である時のいずれかで ADC結果 を出力)。このモードは、CTRLE.WINCMフィールドに書き込む事により設定します。ウィンドウ コンパ レータの下側および上側しきい値は、WINLT および WINHT レジスタで設定する必要があります。ADC 出力が利用可能となり、その値が設定したモードの条件を満たしている時にのみ ADC割り込みがトリガ されます。
最初に、Studio 内で Atmel | START を使って、課題 3 で使ったプロジェクトを再構成します。Atmel |
START では、結果準備完了(RESRDY)割り込みの代わりに WCMP 割り込みオプションを使って、ADC
ドライバを更新します。
5.1 Atmel START 内で ADC を再構成する
1. 課題3のATtiny817_getting_started_events プロジェクトを開きます。
2. [Solution Explorer] 内でプロジェクト名[ATtiny817_getting_started_events] を右クリックしてから [Re-Configure Atmel Start Project] を右クリックします。
3. 「Atmel | START」ウィンドウ内で、[ADC] コンポーネントをクリックします。
4. スクロールダウンして、図5-1の通りにADCを再構成します。変更項目は赤枠で示しています。
図5-1. START内でADCを再構成する
5. 設定手順は以下の通りです。
– [RESRDY: Result Ready Interrupt Enable] フィールドのチェックボックスをOFFにします。
– [WCMP: Window Comparator Interrupt Enable] フィールドのチェックボックスをONにしま す(上で無効にしたRESRDY割り込みの代わりにWCMP割り込みを有効にする)。
– [WINCM: Window Comparator Mode] ドロップダウン メニューから[Outside Window] を選択 します。
Training Manuals DS00002533A_JP - p. 42
© 2018 Microchip Technology Inc.
tinyAVR 1 シリーズのイベント処理入門
– [WINLT: Window Comparator Low Threshold] フィールドに100 (16進値の0x64)を入力します。
6. ウィンドウの最下段にある[GENERATE PROJECT] ボタンをクリックする事により、Atmel Studio 内でプロジェクトを再生成します。図 5-2 に示す通り、[Project Summary]ウィンドウが開きます。
図5-2. 再生成されたプロジェクト コード
7. driver_isr.c ファイルに対する[View Diff] (上図の赤枠内)をクリックする事で、Atmel | START によ る再生成前後のコードの違いを確認します。
図5-3. driver_isr.c のView Diff
8. 図 5-2 では、main.c と driver_isr.c は選択していません。これらは、後で手動による変更が必要で す。
tinyAVR 1 シリーズのイベント処理入門
[OK] をクリックしてプロジェクトを再生成します。
Result: Atmel | START プロジェクトは、更新された ADC ドライバを含めて、Atmel
Studio内で再生成されました。
5.2 Atmel Studio 内でアプリケーションを更新し、ADC データを Data Visualizer グラフ に出力する
To do: driver_isr.c ファイル内のコードを更新します。
1. Atmel Studio 内 で driver_isr.c フ ァ イ ル を 開 い て 、ISR(ADC0_RESRDY_vect) 関 数 を ISR(ADC0_WCOMP_vect) 関数に置き換えます(下図の赤枠内)。
図5-4. Driver_isr.cの更新
2. [Data Visualizer] タブをクリックし、ウィンドウの左側で[Configuration] タブを展開します。
下図の通り、[Visualization] をクリックし、[Graph] をダブルクリックします。
Training Manuals DS00002533A_JP - p. 44
© 2018 Microchip Technology Inc.
tinyAVR 1 シリーズのイベント処理入門
図5-5. Data Visualizerグラフの選択
3. 図 5-6に示す通り、[Serial Port Control Panel] からグラフ ウィンドウ内の[New plot] までターミ ナル入力をドラッグします(赤矢印1)。次に、入力を[Points]として選択します(赤枠2)。
tinyAVR 1 シリーズのイベント処理入門
図5-6. Data Visualizeグラフのデータ出力
4. [Debug] → [Start Without Debugging] を選択する事により、コードをプログラミングします。
5. ポテンショメータのノブを回し、グラフにプロットされるADCデータを観察します。
6. グラフ上のプロット点と[Terminal] に表示される ADC値(図 5-6内の赤枠3)が正しく対応してい る事を確認します。ADC値が100~200のレンジ内である場合、データはグラフにプロットされ ません。
Result: Data VisualizerグラフにADCデータがプロットされます。
Training Manuals DS00002533A_JP - p. 46
© 2018 Microchip Technology Inc.