next up previous contents
Next: DA変換 Up: マイコンに書き込んだプログラム Previous: モーター制御

光センサーの読み込み

aの 5,6番目のビットが10だったら、AD変換を行う。ADコンバータADC0,ADC1,ADC2は左、中央、右にある光センサーに対応する。AD変換の結果で明るさを数字に表すことが出来る。adin16()はAD変換を行う関数である。adin16(0),adin16(1),adin16(2)はADC0,ADC1,ADC2に相当する。putc()はマイコンからデータを出力する関数であり、戻り値は8ビットの値である。12ビットのADコンバータに対して、マイコンとスクイークの間の通信は8ビット通信なので、AD変換の結果を4ビットと8ビットと2つに分けて出力する。

if ((a&0x60) == 0x40) {   //aの3,4番目のビットをみる。10はAD変換
    n = adin16(a&0x07);  //aの0,1番目のビットでADCの番号を指定
    putc((n>>8)&0x0f);    //nの左の4ビットを出力
    putc(n&0xff);       //nの次の8ビットを出力 
}


Deguchi Lab.