KU381を搭載した際に、A/D変換のポートの設定でかなり手こずるだろうなと考えていたけど、講習会マニュアルを熟読してから作業するとかなりスムースに出来るようになった!!後輩達も、これからいろんなセンサを車体に取り付けるかもしれないので参考までに設定を書いておこう。

A/D変換をするためにAN0〜AN3を使用する。
AN0 AD_DRA → 右アナログセンサ
AN1 AD_DRB → 左アナログセンサ
AN2 AD_DRC → ポテンショ
AN3 AD_DRD → KU381
こんな感じで接続する。それぞれスキャンモードでA/D変換を行わせる。
スキャンモードAN0〜AN3なのでAD_CSRは、
AD_CSR = 0x1b;
となる。実際には下記のようにプログラミングしてみた。

int getKu381Sensor( void )
{
unsigned char ku;
ku381 = AD_DRD>>6; /* AN3端子A/D値読み込み */

if(ku381 <= 200)
ku = 1; /* ku381動作 */
else
ku = 0; /* ku381待機 */

return ku;
}

LCDでA/D値を6ビットシフトで見る限り、KU381は反応時に0〜5の値を返し、無反応時に250〜258の値を返す。その変化はリニアではなく急にストン!と0か250かで変わる。よって、A/D値が200を下回ったらreturnで1を返すようにしてみた。一応きちんとこれで反応していた。

KU381の動作はこれで認識できるようになり、とりあえず実際に読み込んだ値を使った制御をプログラミングせずに走行させてみると通常トレースを全くしない・・・・・(笑)
KU381が反応したときに、ステアリングが小刻みに振れたりしていた。ん〜??何か影響してそうだ。割り込みかな?それともA/D変換の設定かな?とりあえず、頑張って原因解析だぁ〜!!