Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 25

Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php:25) in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 81
科学好き者の日々::マイコンデータを読む

マイコンデータを読む

どきどきステッキを握ったときの、ADコンバータの値はいくらなのかを知らないと閾値を決めることができません。

マイコンの内部で使われている変数の値がいくつなのか、デバッグ中に知りたいものです。
ループカウンターなどはシミュレーションでもわかるのですが(実はシミュレーションは使いこなしていないのです)ADコンバータやRS232Cなどから取り込むデータが正しいのかそうでないのかはバグの範囲を狭めるための重要な情報です。

簡易的にLEDやキャラクター表示器を使うのが多いのですが、直接数値をUSB経由でパソコンに表示するのが確実で簡単のように思えます。

今つかっているWIZ-Cの無料のCコンパイラにもシリアルの入出力のライブラリーがあります。

const long SERIALRATE_IN=9600;
const int BITTIME_IN=(4000*1000)/SERIALRATE_IN/4;
const long SERIALRATE_OUT=9600;
const int BITTIME_OUT=(4000*1000)/SERIALRATE_OUT/4;
と定数を定義しておいて(9600はボーレイト、4000はPICのクロック周波数)

SerialOut(&GPIO,5,CH1D);

mainの中で上記のようにかくとPICのビット5にCH1Dの内容がシリアルで送られます。

USBへは、SVX日記で配布していた?梅林コースで購入した、FT232BM変換基板を使っています。FT232BMはLQFPパッケージでユニバーサル基板では使えないので、試作用にはこのような変換基板が便利ですね。
PICとFT232BMの間はシリアル転送で9600bpsです。

でやってみたら、「ありゃ。。。文字化けだ!」
これは当然でCH1DはADコンバータの値でバイナリー値です。ハイパーターミナルでの表示はキャラクター表示ですね。そのままのバイナリー値を渡しては表示できません。バイナリーキャラクター変換をする必要があります。

以下の変換ルーチンを作りました。見易さのため改行、ラインフィードも必要ですね。

void dspserial(unsigned char no)
{
unsigned char dg3;
unsigned char dg2;
unsigned long mod3;
unsigned char mod2;
unsigned char mod1;
dg3=no/100; //MSD
mod3=dg3%10;
mod2=no%100;
dg2=mod2/10;
mod1=mod2%10;
SerialOut(&GPIO,5,0x30+dg3);
SerialOut(&GPIO,5,0x30+dg2);
SerialOut(&GPIO,5,0x30+mod1);
SerialOut(&GPIO,5,0x0D); //"CR"
SerialOut(&GPIO,5,0x0A); // "LF" TXdata
}

これでmainで

 dspserial(CH1D);

と呼べばCH1Dの値をハイパーターミナルで読むことができるようになりました。

USBアダプター.jpg

写真は「FT232BM変換基板」でリード線は紫色がTXdataで黒色はGNDです。

Calendar
<< May 2024 >>
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
262728293031
search this site.
tags
archives
recent comment
recent trackback
others
admin