こんばんわ
としぶぅ~です。
今日は朝から評価治具作るのにARMのソフトいじったり。。。
PICのソフトいじったり。。。。。シート動くように調整したり・・・・・
大変でした。。。。
それなのに家に帰って来ても昨日のフローチャートのコーディング・・・^^;
昔、嫁に言われたことあります。。。。趣味でプログラム書いてたら・・・「家帰ってきても仕事かい!」
と。。。。そんな状況です。
ま、お勉強です。
とりあえずコーディングして動かしてみましたが。。。。だめですね。。。
うまく動かない^^;
どうも16bit計算はうまくコンパイルしてくれない模様・・・・
デバックしていくと取り込んだAD値を16bit変数に入れて分岐比較しても思ったように分岐してくれない
。。。うーーーむ
週末・・・・3連休にでもデバックします。
今日はねむい!
とりあえず、追加したソースは下記です。
へんてこな温度表示がでる!(笑)
void disp_ad3()
{
int ad_fugou;
int data_100;
int data_10;
int data_1;
unsigned char ad_temp;
int dt_0,dt_1,dt_2;
if(ad_disp == 1){
ad_disp = 0; /* display flag clear */
// 温度表示の計算
dt_0 = ad_data_old;
dt_1 = dt_0 - 300;
if(dt_1 > 0){
if(dt_1 > 425){
dt_1 = 425;
}
dt_2 = dt_1 * 2;
ad_fugou = 0x2b;
data_100 = dt_2 / 100;
data_10 = (dt_2 - data_100) / 10;
data_1 = dt_2 - data_100 - data_10;
}else{
if(dt_1 = 0){
ad_fugou = 0x20;
data_100 = 0;
data_10 = 0;
data_1 = 0;
}else{
dt_1 = 1 - dt_1;
if(dt_1 < 125){
dt_1 = 125;
}
dt_2 = dt_1 * 2;
ad_fugou = 0x2d;
data_100 = dt_2 / 100;
data_10 = (dt_2 - data_100) / 10;
data_1 = dt_2 - data_100 - data_10;
}
}
}
// アスキー変換
data_100 = data_100 | 0x30;
data_10 = data_10 | 0x30;
data_1 = data_1 | 0x30;
// LCDへの温度表示
lcd_posyx(1,0);
lcd_data(ad_fugou);
lcd_posyx(1,1);
lcd_data(data_100);
lcd_posyx(1,2);
lcd_data(data_10);
lcd_posyx(1,3);
lcd_data(data_1);
}
では、今日はこの辺で・・・・
おやすみなさい~(^^/