にほんブログ村 その他趣味ブログ 電子工作へ

2009年03月11日

10bit A/D の実現

ロボカップジュニアとはほとんど関係ない世界で、JRT-104 をしゃぶりつくすための旅が続いています(笑)。
以下、A/D コンバータを 10 bit 化するためのソースコードです。

#define AD_CN7          6                       // CN7  AD port channel
#define AD_CN8          7                       // CN7  AD port channel
#define AD_CN9          8                       // CN7  AD port channel
#define AD_CN10         9                       // CN7  AD port channel
#define AD_CN1         10                       // CN7  AD port channel
#define AD_CN2         11                       // CN7  AD port channel
VOLDATA UINT8 at 0x3d ADRH;     /* ADC Data Register */

extern void AD_GETDATA10(byte port, word *data);

void AD_GETDATA10(byte Port, word *Data){
 ADICLK = 0x56;

 switch (Port){
  case AD_CN6:  Port = 0 ; break;
  case AD_CN11: Port = 1 ; break;
  case AD_CN3:  Port = 2 ; break;
  case AD_CN4:  Port = 3 ; break;
  case AD_CN7:  Port = 4 ; break;
  case AD_CN8:  Port = 5 ; break;
  case AD_CN9:  Port = 6 ; break;
  case AD_CN10: Port = 7 ; break;
  case AD_CN1:  Port = 16+8 ; break;
  case AD_CN2:  Port = 16+9 ; break;
  default : return; break;
 }
 ADSCR = Port;
 for(;;){
  if (ADSCR_COCO == 1) break;
 }
 *Data = (ADRH<<8) | ADR;
 ADSCR = 0x1F;
 return;
}

全ポートのテストなんかしてませんので、あしからず。
ちょっと光センサでテストして見ましたが、センサの S/N 比がそもそも 60dB (10bit) 無いような感じもありますし、電源とか伝送路のノイズもあるようなのでトータルの分解能として向上した感じはありません。
それじゃ意味がない ???  いやいや、こういう地道な努力が日本を救うのです(爆)。
posted by モッパー at 23:09| Comment(0) | TrackBack(0) | ロボデザイナー
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/27526634
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
にほんブログ村 その他趣味ブログ 電子工作へ