Citazione:
Originalmente inviato da romoloman Comunque nel tuo programma vedo due cosucce che non mi piacciono proprio...
la prima usare un float.... non serve
500/1024 = 0.488 approssimiamolo a 0.48
uint16_t temp;
temp=analog_read(analog_pin);
temp=((temp*100)/48);
siccome tuttavia temp può arrivare a 1024 temp *100 eccederebbe 65535
allora riscriviamo come:
temp=((temp*25)/12);
a questo punto temp contiene la temperatura moltiplicata per 100
ti lascio il compito a casa per capire come dividerla e metterci il punto.
Suggerimento... lavora sulla stringa prodotta da itoa. |
ehm

mi sono perso, l'unica cosa che mi viene in mente è di giocare con il numero di caratteri dichiarati e il numero di decimali?
Citazione:
Originalmente inviato da romoloman se comunque insisti nel usare i float:
Con il tuo codice:
Dimensione del file binario dello sketch: 4.904 bytes (su un massimo di 32.256 bytes)
sostituisci quell' 5.0*temp*100.0 con 500.0 *temp
Dimensione del file binario dello sketch: 4.892 bytes (su un massimo di 32.256 bytes)
12 bytes risparmiati.... |
ok questo è facile