MPLAB Code Configurator (MCC)でAD変換をやってみたことが無かったのでやってみた。
というか、PIC24でのAD変換も初めてかもしれない。
まず、「PIC24FJ64GA002 + Nokia 5110 Graphic LCD (PCD8544) – LCD消去とカーソルの位置指定 –」を横目で見ながらLCD表示部分をGA002からGB002へ移植する。
これはもう、全く同じようにMCCで設定してからGenerateして、その後にただ表示関連のコードをコピーするだけだ。
MCCでADCを追加して下のように設定した。
Enable Auto Samplingというのがあったので、字面だけから自動で淡々と値を取って来てくれるのだと判断して、これを使ってみる。
右のConversion Triggerは何か設定しとかないとトリガーなしじゃ自動で動かないかもと思って、それらしいInternal counter ends sampling and starts conversionを選んでみた。
上のNotificationsのところにTADがちっさすぎというエラーが出ていたので、
Conversion Clockを増やしてTDAの値を大きくしたら、エラーは表示されなくなった。
Pin ManagerにADC1が追加されるので、ここで6ピンRB2を使う設定にした。
Pin Moduleを見るとRB2がAN4として働くのだということがわかる。
RA0, RA1, RA4とかの余分なピンも設定てあるが、とにかくLチカしてくれないと落ち着かないという単なるおまじないのためのLED用の設定だ。
Generateすると、MCCが吐き出したadc1.cの中にADC1_ConversionResultGet()というそれらしい関数があるので、これを呼んでその値をLCDに表示してみる。
こんな感じだ。
半固定抵抗で分圧した電圧を読ませ、ドライバーでぐりぐり値を変えてみたら、ちゃんと値も追随して表示出来た。