前へ | 次へ |
ポートPBを読み込むとき、A/DのADCSRで入力チャネルに指定されている端子は0となります。
PBをADとして使用せず、デジタル入力するときは、以下のように読み込みます。
3664の場合
/* ADチャンネル選択を7に逃がして、下位ニブルの取り込み */
AD.CSR.BIT.CH = 7;
portb = IO.PDRB.BYTE & 0x0f;
/* ADチャンネル選択を0に逃がして、上位ニブルの取り込み */
AD.CSR.BIT.CH = 0;
portb |= IO.PDRB.BYTE & 0xf0;
3672の場合
/* ADチャンネル選択を3に逃がして、下位2ビットの取り込み */
AD.CSR.BIT.CH = 3;
portb = IO.PDRB.BYTE & 0x03;
/* ADチャンネル選択を0に逃がして、上位2ビットの取り込み */
AD.CSR.BIT.CH = 0;
portb |= IO.PDRB.BYTE & 0x0c;
今、気がついたのですが、なにも、ADチャンネルをMSB,LSBにしなくても、
ADチャンネルを0にして、PB7-PB1を取り込み、ADチャンネルを1にし、PB0を取り込めば、3664と3672共用のソフトでいけますね。