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

2009年02月14日

アナログ入力の拡張

Ticolla CDE でアナログ入力出来ないことになっているポートから、アナログ入力をする方法です。
H/W 定義では A/D コンバータの初期化のため、ADC_INIT(); というコードが必須です。H/W 定義で一つでも Analog in が定義されていれば、initilize.c の中でこのコードは呼ばれますが、定義しない場合は main.c の中で呼んでおく必要があります。また、H/W 定義で Analog in に出来ないポートは Digital in にしておけばアナログ入力出来ます。
以下、サンプルプログラムです。CN1 と CN2 はアナログ入力しながらデータロギングが出来ないようです。CN7-10 は検証が面倒だったのでテストすらしてません(笑)。結局使い物にならないような...
#define AD_CN7 6
#define AD_CN8 7
#define AD_CN9 8
#define AD_CN10 9
#define AD_CN1 10
#define AD_CN2 11
void AD_GETDATA2(byte Port, byte *Data){
 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 = ADR;
 return;
}

尚、このブログに書いてあることは、ロボデザイナの保証する範囲をこえたものですから、ボードが破損しようが火を吹こうが一切私は責任を持ちません。そういう覚悟のもと、実行して下さい。
posted by モッパー at 14:34| Comment(1) | TrackBack(0) | ロボデザイナー
この記事へのコメント
メンバー達いわく、CN7-CN10 のアナログIN は上記のソースコードでも出来ないそうです。多分ポートの初期化パラメータ変えれば出来そうに思いますが、LED 出力の影響とか モータードライバの出力をちゃんと物理的に切ってあるかとか関連しそうです。私の時間がとれないので、とりあえずお預けです。
Posted by モッパー at 2010年03月14日 23:06
コメントを書く
お名前: [必須入力]

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

ホームページアドレス:

コメント: [必須入力]

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


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

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