Salve avrei bisogno di visualizzare su 4 display a 7 segmenti un numero con la virgola per esempio 12,34 il dato viene elaborato dal PIC tramite una variabile di tipo int e vorrei visualizzare il valore contenuto nella variabile sui 4 display sapete come aiutarmi? grazie mille
Nicolas
Visualizzare numero con la virgola su display 7 segmenti PIC
Moderatore:
Paolino
19 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
Si può fare in tanti modi, dipende molto dall'hardware e quindi dal PIC che stai utilizzando. In linea di massima devi convertire il numero in formato BCD per andare poi a pilotare i display tramite le/la porte/porta di uscita, in generale passando per un driver se il tuo PIC non riesce a pilotarlo direttamente.
Se hai quattro porte libere direi che la cosa è semplice, fai l'output delle quattro cifre direttamente una per porta, se invece hai una sola porta disponibile (o vuoi risparmiare) potresti pensare di mandare le quattro cifre in modo sequenziale e attivare uno per volta i display.
Tra l'altro... stai tenendo un numero in virgola su una variabile intera???
Se hai quattro porte libere direi che la cosa è semplice, fai l'output delle quattro cifre direttamente una per porta, se invece hai una sola porta disponibile (o vuoi risparmiare) potresti pensare di mandare le quattro cifre in modo sequenziale e attivare uno per volta i display.
Tra l'altro... stai tenendo un numero in virgola su una variabile intera???
Erwin Schrödinger forse è stato qui.
1
voti
Disponi già dell'hardware? Oppure hai almeno lo schema elettrico?
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)
0
voti
Allora mi sono sbagliato a scrivere il dato è in una variabile di tipo long, il PIC l'ho già ed è montato su breadboard per testare il circuito i display sono gestiti dal PIC tramite multiplexing dei display solo che se si tratta di visualizzare sui display numeri interi ne sono capace e non c'è problema, mentre in questo caso devo visualizzare un dato con due cifre decimali e non so estrapolare quelle due cifre per farle visualizzare sui display.. Sapete come estrapolare quelle due cifre in C?
0
voti
L'idea più semplcie che mi viene è la seguente, prendiamo
generico di cifre
:
e.g. 
Estraggo la prima cifra:
e.g 
A questo punto C1 è nota, quindi estraggo la seconda:
e.g. 
e.g. 
penso tu riesca a trovarlo da solo 
In alternativa potresti convertire il numero in una stringa (meglio come vettore di char) e quindi estrarre i singoli caratteri e riconvertirli in numero decimale.
generico di cifre
:
e.g. 
Estraggo la prima cifra:
e.g 
A questo punto C1 è nota, quindi estraggo la seconda:
e.g. 
e.g. 
penso tu riesca a trovarlo da solo In alternativa potresti convertire il numero in una stringa (meglio come vettore di char) e quindi estrarre i singoli caratteri e riconvertirli in numero decimale.
Erwin Schrödinger forse è stato qui.
2
voti
Mmh, non capisco una cosa: hai un dato long che sai già che dovrà avere due cifre decimali? Altrimenti il tuo dato, se fosse già decimale, non è long, ma float.
Paolo.
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
Si forse hai ragione forse è meglio una variabile float appena arrivo a casa ci guardo e cerco di mettere in atto il consiglio dato!! Grazie per le risposte!!
1
voti
Ehm, no. Non hai capito la mia domanda (e non hai nemmeno risposto).
Occhio che usare i float su un microcontrollore non è il massimo. Lo si fa, ma se puoi evitarlo...
Paolo.
Occhio che usare i float su un microcontrollore non è il massimo. Lo si fa, ma se puoi evitarlo...
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 io converto con adc un valore di tensione in ingresso al PIC, il risultato della conversione è in una variabile float perché siccome il convertitore è a 10 bit in un char non ci sta, il valore ottenuto della conversione lo moltiplico per 5 e divido per 1024 per ottenere i millivolt in ingresso al PIC, successivamente moltiplico per 10 i millivolt quindi il risultato ottenuto è con la virgola e ho deciso io di utilizzare solo le due cifre decimali e vorrei visualizzare su i display oltre alla decina e l'unità del valore anche i due decimali dopo la virgola del valore della variabile. Non so se mi sono spiegato sufficientemente
0
voti
nicolas97 ha scritto:Allora io converto con adc un valore di tensione in ingresso al PIC, il risultato della conversione è in una variabile float perché siccome il convertitore è a 10 bit in un char non ci sta
Non ho capito, perché è un float? Cosa centra il fatto che è codificato su 10 bit con il float? Che PIC usi?
Erwin Schrödinger forse è stato qui.
19 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 8 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)

