M12Aで対数計算(出来るかどうかは不明ですが)をさせその結果をLCDへ表示させて見ようと目論んでいます。(適当な時期にプログラムをいじくっていないと忘れてしまいます。)
さて、プログラムです。(log計算の前でつまずいています)
char log_buff[10];
int n1;
double v1,l;
lcdc_cls();
n1 = 5;
sprintf(log_buff, "Log=%d.%d", 0 , 3010);
lcdc_xy(0,0);
lcdc_putstr(log_buff); //}
delay_msec(5000);//}
while(1);
}
この結果は
期待通りです。
次に
lcdc_cls();
n1 = 5;
v1= 1.2; <----- 追加
sprintf(log_buff, "Log=%d.%d", 0 , 3010);
この結果は
期待はずれです。
また、次に
lcdc_cls();
n1 = 5;
v1= 1.2;
sprintf(log_buff, "Log=%d" , 3010);
.%d を削除します。
そうすると、結果は
となります。期待通りです?かね。
sprintfの前に double の変数を書くとLCDの表示はおかしくなります。 intでは問題ない様です。
v1=1.1;
sprintf(log_buff, "%d.%d", 0, 3010);
上記2行は関係ないはず?ですが、、、、、何か有るのかしら?