Ho usato un float perché il char è a 8 bit e siccome il dato in uscita al adc è a 10 bit non posso usare un char e ho usato un float
Sto usando un pic16f88
Visualizzare numero con la virgola su display 7 segmenti PIC
Moderatore:
Paolino
19 messaggi
• Pagina 2 di 2 • 1, 2
0
voti
Domanda: ti servono proprio tutti e 10 i bit? Non puoi prendere gli 8 più significativi o hai proprio bisogno di una certa precisione?
Io avevo fatto così tempo fa per evitare di lavorare con più di 8 bit.
Io avevo fatto così tempo fa per evitare di lavorare con più di 8 bit.
Erwin Schrödinger forse è stato qui.
0
voti
Il mio progetto è un voltmetro digitale e i 10 bit dell adc non erano male per una lettura di una certa precisione eliminando i due bit meno significativi non so quanto possa influenzare sulla lettura comunque non è un problema lavorare con un float visto che alcuni messaggi prima mi è stata data la soluzione alla "scomposizione" del numero quindi credo di aver risolto!! Ora provo quella soluzione e vi faccio sapere!!
0
voti
Tieni conto del fatto che vuoi visualizzare un numero con massimo 2 cifre dopo la virgola. Quindi fornisci una misura con un incertezza assoluta di almeno 10mV.
Acquisire valori più precisi, con incertezze dell'ordine di 1mV sarebbe solamente più complicato da gestire dal punto di vista computazionale ma di fatto non introduce nessun vantaggio in termini di precisione a meno che tu non voglia aggiungere un quinto display.
È ovvio che questo potrebbe non essere il tuo caso... ma può essere che tra l'usare 10 bit o usarne solo 8 bit non ti cambi assolutamente nulla in termini di precisione, dipende anche da che tensioni intendi misurare. Valuta tu ;)
Acquisire valori più precisi, con incertezze dell'ordine di 1mV sarebbe solamente più complicato da gestire dal punto di vista computazionale ma di fatto non introduce nessun vantaggio in termini di precisione a meno che tu non voglia aggiungere un quinto display.
È ovvio che questo potrebbe non essere il tuo caso... ma può essere che tra l'usare 10 bit o usarne solo 8 bit non ti cambi assolutamente nulla in termini di precisione, dipende anche da che tensioni intendi misurare. Valuta tu ;)
Erwin Schrödinger forse è stato qui.
0
voti
Ma una domanda se utilizzassi solo 8 bit come faccio ad ottenere i decimali?
1
voti
Allora, se vuoi rappresentare un dato a 10 bit che indichi la tensione 0-5V misurata dall'ingresso ADC, ti basta un long.
Infatti, se ADC è il valore acquisito, allora:

e dato al più assume valore 3200000 (0x30D400).
Così, se ADC = 1, il valore di dato è 48, se ADC = 1024 dato = 50000
Il valore dato è espresso in mV.
È questo quello che volevi ottenere?
Paolo
Infatti, se ADC è il valore acquisito, allora:

e dato al più assume valore 3200000 (0x30D400).
Così, se ADC = 1, il valore di dato è 48, se ADC = 1024 dato = 50000
Il valore dato è espresso in mV.
È questo quello che volevi ottenere?
Paolo
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
0
voti
Allora devo misurare una tensione da 0-50V allora ho fatto un partitore di tensione che riduce la tensione di 10 volte, quindi leggo in valore restituito dall adc lo moltiplico per 5 e divido per 1024 ottenendo così i millivolt poi moltiplico il risultato per 10 poiché ho applicato il partitore che divide la tensione di 10 volte il risultato ottenuto è con la virgola e fin qui non c'è problema il problema era come scomporre il risultato finale per esempio 12.34 nelle cifre 1 2 3 4 in modo da visualizzarli su display ma penso di aver risolto applicando i calcoli che mi ha dato un utente in precedenza
1
voti
Ve bene, ma non ti serve un float per fare quello che vuoi tu. Ti è sufficiente un long, che è un tipo di dato di più facile gestione da parte del microcontrollore.
Ciao.
Paolo.
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
19 messaggi
• Pagina 2 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 16 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



