マイコンde学習しよう(レッスン9)AVR128DA28
「アナログコンパレータ」
<目的>
アナログコンパレータについて学ぶ。
<動作概要>
VR1 を回し、その電圧が比較電圧より高くなるとLED3 が点灯する。
<レジスタ説明>
使用するアナログコンパレータ機能であるACn毎に設定/参照すべき下記レジスタがあります。(使用するレジスタのみ抜粋しています)
RUNSTDBY:スタンバイ動作 1:許可
OUTEN:OUT端子出力許可 1:許可
ENABLE :AC動作許可 1:許可
INVERT:比較結果反転 1:反転
MUXPOS[2:0] :下表参照
MUXNEG[2:0] :下表参照
CMPSTATE:AC状態 比較結果が入る。
使用するVREF機能に設定すべきレジスタは下記です
MUXCTRL レジスタでAC 正入力とAC 負入力を選択します。
本基板では正入力をAINP0、負入力をDACREF としています。
ピン割当て表において、ACの列を見ると、PD2 のところに0,AINP0 1,AINP0 2,AINP0 と書かれています。
これはAC0、AC1、AC2 においてPD2 をAINP0 に割り当てることを意味し、今回はAC0 を使います。
負入力はVDACREFであり、VREF.ACREF レジスタの設定値とAC0.DACREFレジスタの値から次の計算式で決まります。
VDACREF = VREF.ACREF x AC0.DACREF / 256
また、結果をOUT 端子から出力しますが、前述の表において、ACの列を見ると、PA7 のところに0,OUT 1,OUT 2,OUTと書かれています。
これはAC0、AC1、AC2 においてPA7 をOUT に割り当てることを意味します。
<プログラム>
この記事が気に入ったらサポートをしてみませんか?