Visualizza messaggio singolo
Vecchio 23 dicembre 12, 23:56   #163 (permalink)  Top
romoloman
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
Citazione:
Originalmente inviato da gRiNgO Visualizza messaggio
Romoloman ti devo un birra!!!
ho modificato leggermente il tuo sketch per adattarlo al sensore:
Codice:
  dtostrf(temp,5, 1, buffer);

giusto per non essere asino che fa le cose senza capire cosa sono i dati tra parentesi del dtostrf?
grazie e buone feste
temp: (ovviamente la temperatura, il float letto dal sensore)
5: lunghezza minima del campo includo il punto e il decimale
1: numero dei decimali dopo la virgola
buffer: stringa temporanea per mettere il risultato

perchè ho scelto 5 ed 1 ?
dubito che il tuo range di temperatura possa eccedere i -99.9 ed essere superiore ai 999.9 gradi in tutti e due i casi come vedi la lunghezza massima è 5 caratteri
usando la lunghezza massima eviti che il numero si muova sul display al massimo ti trovi degli spazi prima.
1 perché il decimo di grado credo ti basti.

la domanda che potresti porti è perché con 5 come lunghezza minima hai allocato 10 byte nel buffer ?
In realtà in effetti può essere esagerato, bastavano 6 caratteri (ricordati che una stringa ha sempre in fondo il carattere '\0'.
per fare le cose formalmente corrette la cosa migliore sarebbe verificare con un if che temp sia nell'intervallo corretto e visualizzarlo solo in quel caso, prevenendo errori di lettura. Qualora infatti la dtostr dovesse ritornare un valore fuori range ci sarebbero due problemi... il primo di visualizzazione ed i secondo di buffer overflow.
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando