としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC16F88を動かす。。。その23(昨日のフローチャートをコーディング!動かん!!)

2012-10-04 23:18:08 | PIC16F88

こんばんわ

としぶぅ~です。

 

今日は朝から評価治具作るのに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);

}

では、今日はこの辺で・・・・

おやすみなさい~(^^/