こんばんわ
としぶぅ~です。
夜はかな~り涼しくなってきましたね。。。。秋だ~^^
今日は昨日考えたやり方でとりあえずコーディングしてみました。
ささっと書いたのでバグありそうです。。。
表示になぜが”00”がでます。。。
表示についてはとりあえず、ADで取り込んだ値を16進数で表示しています。
まずは、ADのコードです。
下記をad.cに追加しました。
unsigned char ad_data; //(20120908追加)
unsigned char ad_disp; //(20120919追加)
unsigned char ad_data_old; //(20120919追加)
void ad_4ms()
{
ad_data = ad4();
/* 前回のデータと今回のデータが違っていたら表示フラグをセットする */
if(ad_data_old != ad_data){
ad_disp = 1; /* 表示フラグセット */
ad_data_old = ad_data; /* 新データを旧データにセット */
}
}
次にlcd_f88.cに下記を追加
void disp_ad()
{
unsigned char ad_10;
unsigned char ad_1;
/* 表示フラグを確認して、フラグが立っていたら表示データ作成 */
if(ad_disp == 1){
ad_disp = 0; /* 表示フラグのクリア */
ad_10 = (ad_data_old & 0xf0) >> 4; /* MSB8bit */
ad_1 = (ad_data_old & 0x0f); /* LSB8bit */
/* 16進数表示データ作成 */
if(ad_10
ad_10 = ad_10 | 0x30;
}else ad_10 = (ad_10-0x09) | 0x40;
if(ad_1
ad_1 = ad_1 | 0x30;
}else ad_1 = (ad_1-0x09) | 0x40;
lcd_posyx(1,0);
lcd_puts(" "); /* 2行目クリア */
lcd_posyx(1,0); /* MSBデータ表示 */
lcd_data(ad_10);
lcd_posyx(1,1); /* LSBデータ表示 */
lcd_data(ad_1);
}
}
コードはこんな感じです。
動作状況は
こんな感じです。
表示データは”8C”です。
電圧がちょっと高めなので(Pickit2の時より微妙に高い。。0.2Vくらい?)
表示データ値が少し低くなっているかな…
でもデータ的にはだいたいいいところに来ていると思います。
室温でだいたい25℃くらいなので、前回とった表で見比べると
94h付近になるはず・・・多少誤差ありますが、8Chなのでいいところ来ています。
ちゃんと温度計になっているということですね。
後は、少しバグ取りして、16進数を温度表示なるように変換して、温度表示できるようになれば
完成ですね。。。
明日やれるかな~
明日は、会社の懇談会なので・・・早く帰ってこれればつづきやります。
それでは、今日はこの辺で(^^/
おやすみなさ~い!