クズなstdioは無視して次に行く。次は、Microchip Universityの次の例題、Interface an ADC and PWMだ。動画の通りにやっていく。今回は動画との相違点は無いので、迷わずにできる。
コンパイル・書き込みも一発でOKだ。その結果、
・TeraTermは相変わらず全く同じ症状でダメだ。同じstdioを使ったUARTのプログラムを使ってるから当たり前だ。
・肝心の、ADCの動作。ポテンショメータを回すと、その隣にあるLEDの輝度が変化するというのは、完璧にうまく行った。こういう状況。
つまり、クズなstdioが原因でUART動作がうまく行かない以外の点は、成功だ。
※追記、2024.2.29
これがうまく行ったので、見直してみる。
一見UART問題が解決して安心・・・みたいな気がするけど、同じDM164137の基板でも、ここまで書いた基板に載っているチップはPIC16F1619だが、今のロケーションの基板ではPIC16F18446なのである。で、実際にADCやPWMをMCCで入れてみると・・・
なんか、ADCCなんていう変な名前に変わってるし、
PWMも4じゃなくて6になってるし、
なので、ピン配置も動画とはかなり異なるふうになってしまった。これはイヤな予感・・・
当然コンパイルが通らないので、さっきのEUSARTを直すのと同時に、このように、app.c上のADC…とある箇所をADCC…に直してみる。PWMも6にする。
しかしなぜかどうしてもここの一カ所だけ、ADCをADCCに直しても、エラーが消えない。勿論その原因は不明。このままだとコンパイルが通らないので、暫定的にコメントアウトしてみると、コンパイル・書き込みはできるものの・・・
TeraTerm上には何も出ない上に、ポテンショメータを回しても全くLEDが反応しない。
これは完全に失敗である。ここが原因?で、UARTの動作まで異常になっている雰囲気。
まあ残念だが、またここじゃない環境に行って、PIC16F1619でうまく行くかを見てみることにしよう。
<さらに追記>
MPLAB Xを立ち上げ直して再度コンパイル・書き込みしてみたら、UARTの動作だけは成功。でもADCは当然動かず。TeraTermはこんな感じ。半分だけ成功であった。
コメント