Display LCD e Atmega16L, AVR assembly

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

Avatar utente
Foto UtenteStabile18
5 2
Messaggi: 44
Iscritto il: 18 giu 2013, 1:52
0
voti

[31] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteStabile18 » 30 mag 2014, 13:03

ahahahha si è una cretinata ,me ne sono accorto e infatti stavo cancellando solo che hai risposto,comunque programmo e vi faccio sapere,grazie ancora ragazzi

Avatar utente
Foto UtenteStabile18
5 2
Messaggi: 44
Iscritto il: 18 giu 2013, 1:52
0
voti

[32] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteStabile18 » 16 giu 2014, 10:23

salve ragazzi,sono andato avanti con il progetto e credo di essere a buon punto.Ho un piccolo(almeno spero) problema.Durante la prima conversione mi esce un simbolo strano sulle decine dell'unità.Dalla seconda conversione in poi funziona tutto alla perfezione,non riesco a capire di cosa si tratta.vi allego le foto
help me
Allegati
20140612_160828.jpg
dalla seconda conversione in poi
20140612_160813.jpg
prima conversione

Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
Messaggi: 8991
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino
0
voti

[33] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteWALTERmwp » 16 giu 2014, 10:39

Stabile18 ha scritto:un simbolo strano sulle decine dell'unità.Dalla seconda conversione in poi funziona tutto alla perfezione
... che differenza c'è, nell'esecuzione del codice di visualizzazione, tra la prima "print" e le successive ?
Intanto provo con quattro ipotesi:
I) la prima "print" del valore è incompleta (usi sempre la medesima parte di codice ?)
II) alla prima "print" del valore fai seguire un'altra "print", posizionata in corrispondenza delle decine, che visualizza un carattere presente nella "tabella" del display (ma che non coincide con quello che dovrebbe essere visualizzato, seppur involontariamente),
III) le successive "print" del valore "sovrascrivono" quel carattere indesiderato (non si vede ma la sua "print" la esegui comunque),
IV) la prima volta che visualizzi la "pagina" con l'errore esegui la print della parte "statica" (intendo "T -C ) passando una stringa per la quale hai sbagliato la lunghezza; la volta successiva non si vedrebbe più perché semplicemente non ripeti la gestione della parte statica.

Saluti
W - U.H.F.

Avatar utente
Foto UtenteStabile18
5 2
Messaggi: 44
Iscritto il: 18 giu 2013, 1:52
0
voti

[34] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteStabile18 » 16 giu 2014, 10:45

nessuna differenza ,è sempre la stessa print...uso un sistema di stampa diviso in decine ed unità...confronto il valore con un valore stabilito dalle formule prese sul datasheet e incremento decine e unità,poi stampo una cifra per volta(stampo temp,stampo prima cifra decine,stampo seconda cifra,stampo unità ecc)...faccio il clear dell'lcd e poi ristampo tutto...il carattere indesiderato fa parte della tabella con parte alta 1100

quando stampo una cifra faccio:
stampa:
; ---stampo la primacifra:
sbi portA,5
subi deci,-0x30
out portC,deci
ldi time,1
rcall DELAY_MILLI
LCD_CLK


grazie mille,saluti

Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
Messaggi: 8991
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino
0
voti

[35] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteWALTERmwp » 16 giu 2014, 11:00

Stabile18 ha scritto:nessuna differenza ,è sempre la stessa print...uso un sistema di stampa diviso in decine ed unità...confronto il valore con un valore stabilito dalle formule prese sul datasheet e incremento decine e unità,poi stampo una cifra per volta(stampo temp,stampo prima cifra decine,stampo seconda cifra,stampo unità ecc)...faccio il clear dell'lcd e poi ristampo tutto...il carattere indesiderato fa parte della tabella con parte alta 1100
... ?
Potresti essere più chiaro nell'esposizione, grazie ?
Sei consapevole della presenza di quel carattere ?
Perché "cancelli" ogni volta il display ?
Se la "pagina" da visualizzare è sempre la stessa ti conviene "scrivere" sul display solo la parte dinamica (valori) senza ripetere tutto ad ogni passaggio.

Saluti

p.s.
sino a che non ho selezionato, per citare, il contenuto del tuo post, questo veniva visualizzato in modo incompleto (quanto soprascritto resta comunque valido).
W - U.H.F.

Avatar utente
Foto UtenteStabile18
5 2
Messaggi: 44
Iscritto il: 18 giu 2013, 1:52
0
voti

[36] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteStabile18 » 16 giu 2014, 11:11

si era più conveniente fare in quel modo ,però ho organizzato in questa maniera perché cosi fa capire che si aggiorna tutto ad ogni misurazione...non capisco perché mi dà quel carattere ,ho visto i caratteri che uscivano ad ogni prova ed ho notato che appartengono a quella colonna della tabella.
allora per la temperatura ad esempio:
converto il valore,lo confronto con 10 ,se è maggiore,incremento deci e sottraggo 10 al valore ecc...utilizzo l'adc a 8 bit e AREF 2.56 interna

Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
Messaggi: 8991
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino
0
voti

[37] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteWALTERmwp » 16 giu 2014, 11:55

Mi sembra tu faccia un po di confusione, ma è solo una mia impressione.
Allora, trascuriamo per il momento la modalità d'aggiornamento del display (che comunque può avere la sua rilevanza, per il problema che segnali, nell'ambito della tua gestione), e presta maggiore attenzione a quello che ho riportato nel Post [33].
Riguarda, con calma, il codice che hai dedicato alla visualizzazione e, se puoi, ri-spiegalo (ri-descrivilo), in un nuovo Post (contribuisce a chiarirsi le idee) senza speculare su abbreviazioni cercando d'essere il più lineare possibile.

Saluti
W - U.H.F.

Avatar utente
Foto UtenteStabile18
5 2
Messaggi: 44
Iscritto il: 18 giu 2013, 1:52
0
voti

[38] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteStabile18 » 16 giu 2014, 12:35

scusami cerco di spiegarmi meglio...
quando il dato è stato convertito scatta l'interrupt di fine conversione.
a questo punto modifico il dato seguendo la formula di conversione presente sul datasheet,ad esempio:
ci sono 25 gradi...il sensore da 10mV per ogni grado centigrado.Utilizzo come risoluzione dell'Adc 8 bit e un riferimento di 2.56 V.Tramite la formula mi esce un valore esattamente uguale a quello che devo stampare perché faccio ADC= Vin*256/2.56.confronto il 25 con 10,è maggiore,incremento le deci(registro per le decine),sottraggo 10 e continuo...stesso ragionamento per le unità.
Finito questo stampo la parola T e poi passo alla stampa dei caratteri convertiti con il codice precedentemente postato

Avatar utente
Foto UtenteStabile18
5 2
Messaggi: 44
Iscritto il: 18 giu 2013, 1:52
0
voti

[39] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteStabile18 » 16 giu 2014, 17:24

stampa:
; ---stampo la primacifra:
sbi portA,5
subi deci,-0x30
out portC,deci
ldi time,1
rcall DELAY_MILLISECONDI
LCD_CLK

; ---stampa II cifra
ldi time,1
rcall DELAY_MILLISECONDI
subi uni,-0x30
out portC,uni
ldi time,1
rcall DELAY_MILLISECONDI
LCD_CLK

Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
Messaggi: 8991
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino
0
voti

[40] Re: Display LCD e Atmega16L, AVR assembly

Messaggioda Foto UtenteWALTERmwp » 16 giu 2014, 21:48

Stabile18 ha scritto:scusami cerco di spiegarmi meglio...
... non devi, non c'è alcun problema ... si tratta semplicemente d'essere chiari per fornire le informazioni del caso a beneficio di tutti.

Probabilmente dovevo puntualizzare meglio perché essendo la questione relativa alla visualizzazione le altre operazioni credo c'entrino poco.
Il micro che stai usando non lo conosco ma la gestione di una periferica, come un modulo 16x2, è quello che è; sarò noioso ma devi essere più esplicito perché da quello che vedo nel Post [39] presumo che con la gestione del display abbia a che fare solo la "out portC, xxxx".

Dato che, come hai scritto, quel carattere "clandestino" appare una sola volta, in mancanza di altre indicazioni, sarei propenso, per la ricerca dell'errore, ad una attenta lettura del Post [33], poi magari non ha nulla a che fare.
E ti ripeto, al momento, qualsiasi disquisizione relativa ad altre operazioni, dal mio punto di vista non è necessaria (ADC compreso).
Quindi, ad esempio, come fai a "scrivere" le lettere che sulla prima riga precedono il valore di temperatura ?
Fai l'output del contenuto di una stringa o di un carattere per volta ?
Quindi, ti preoccupi di definire la posizione di "stampa" sul display oppure no perché li mandi (i caratteri) in visualizzazione uno alla volta ?
E così via ...
E' possibile anche il caso ch'io insista su un aspetto che non ha "incidenza" ma penso sia difficile quindi, quasi quasi sarei propenso per chiedere il parere anche di qualcun altro, già intervenuto, come Foto UtentePietroBaima ... dovesse essere in "ascolto" ...

Saluti
W - U.H.F.


Torna a “Firmware e programmazione”