浮動小数点数をLCDに表示するにはどのように変数、voltsを取得しますか?LCDに浮動小数点数を表示
LCDには、小数点以下が多く浮動小数点値が表示され、最後にEが表示されます。私は小数点以下2桁しか必要ないので、どのように表示するのですか?
int main (void){
adcinit();
lcd_init();//initializes LCD
lcd_clear();//clear screen
lcd_home();
uint16_t value;
float volts;
while(1){
ADCSRA |= (1<<ADSC);//start ADC conversion
delay_ms(54);//delay 54 millisecond
value = ADCW;//assign ADC conversion to value
volts=(value*5)/1023;
lcd_goto_xy(0,0);// coordinates of the cursor on LCD Display
lcd_printf("ADC Value: %d ",value);//display on LCD
lcd_goto_xy(0,1);// coordinates of the cursor on LCD Display
lcd_printf("Volts: %f ",volts);//display on LCD
}
}
何を表示していますか? – immibis
ここには 'volts =(value * 5)/ 1023'という問題があります。これらはすべて整数であるため、計算結果は整数になります。これはおそらくあなたが望むものではありません。 'volts =(value * 5f)/ 1023f'を試してみてください。 – msandiford
ミリボルトを表示することを検討してください: '符号なしボルト=(値* 5000L + 1024/2/*この値をラウンド* /)/ 1024;に加算し、FP演算を避けてください。 – chux