Array di numeri
- bading
-
Autore della discussione
- Elit Utente
-
Less
Di più
12 Anni 11 Mesi fa - 12 Anni 11 Mesi fa #1
da bading
http:\www.d2l.it
Array di numeri è stato creato da bading
Devo creare un contatore che va da 0 a 9999. Devo poter variare la singola cifra spostandomi con un bottone nelle migliaia, nelle centinaia, nelle decine e nelle unità.
Ho pensato di creare un array di quattro numeri che voglio visualizzare sul display. Di seguito il codice.
unsigned char timetestAr[];
// inizializzo l'array con 1000
timetestAr[0]=1;
timetestAr[1]=0;
timetestAr[2]=0;
timetestAr[3]=0;
//scrivo sul display l'array
WriteVarLCD (timetestAr);
Sul display mi compaiono caratteri strani.
Dove sbaglio?
Dovrei poi ricostruire il numero facendo un operazione tipo:
// dichiarazioni variabili
unsigned int timetest;
// ricostruisco numero
timetest=1000*timetestAr[0]+100*timetestAr[1]+10*timetestAr[2]+timetestAr[3];
Grazie
Ho pensato di creare un array di quattro numeri che voglio visualizzare sul display. Di seguito il codice.
unsigned char timetestAr[];
// inizializzo l'array con 1000
timetestAr[0]=1;
timetestAr[1]=0;
timetestAr[2]=0;
timetestAr[3]=0;
//scrivo sul display l'array
WriteVarLCD (timetestAr);
Sul display mi compaiono caratteri strani.
Dove sbaglio?
Dovrei poi ricostruire il numero facendo un operazione tipo:
// dichiarazioni variabili
unsigned int timetest;
// ricostruisco numero
timetest=1000*timetestAr[0]+100*timetestAr[1]+10*timetestAr[2]+timetestAr[3];
Grazie
http:\www.d2l.it
Ultima Modifica 12 Anni 11 Mesi fa da bading.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- gcupini
- Visitatori
-
12 Anni 11 Mesi fa #2
da gcupini
Risposta da gcupini al topic Re: Array di numeri
ciao,
forse devi chiarire meglio! ti dico che cosa ho capito io:
1) devi scrivere i numeri su un LCD [lo deduco dall'uso della funzione WriteVarLCD() ]
2) usi un liguaggio di tipo C [lo deduco dalla definizxione dei dati array]
Le informazioni sono un po scarse. Per esempio la funzione WriteVarLCD(par) che tipo di dato (par) riceve? un carattere? una Stringa?
Quale tipo di circuito e di LCD usi ? Se mai riuscito a far funzionare il tuo LCD e a vedere caratteri su di esso?
Scusa se non posso aiutarti, ma forse se ti spieghi meglio qulcuno patrà aiutarti.
ciao e buon lavoro
forse devi chiarire meglio! ti dico che cosa ho capito io:
1) devi scrivere i numeri su un LCD [lo deduco dall'uso della funzione WriteVarLCD() ]
2) usi un liguaggio di tipo C [lo deduco dalla definizxione dei dati array]
Le informazioni sono un po scarse. Per esempio la funzione WriteVarLCD(par) che tipo di dato (par) riceve? un carattere? una Stringa?
Quale tipo di circuito e di LCD usi ? Se mai riuscito a far funzionare il tuo LCD e a vedere caratteri su di esso?
Scusa se non posso aiutarti, ma forse se ti spieghi meglio qulcuno patrà aiutarti.
ciao e buon lavoro
Si prega Accesso o Crea un account a partecipare alla conversazione.
12 Anni 11 Mesi fa - 12 Anni 11 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Array di numeri
Ciao Giovanni credo di aver capito al problema a cui fa riferimento.
La funzione che usa e' della libreria LCD che ho scritto.
Il problema dei caratteri strani deriva dal fatto che l'array deve essere terminato con il carattere /0.
quindi deve essere:
II caratteri strani derivano dal fatto la funzione WriteVarLCD continua a scrivere caratteri sull'LCD fino a quando non trova il termine dell'array. inoltre per scrivere 1000 lo 0 e 1 devono essere inviati come caratteri e non come cifre numeriche quindi devono essere tra apici come ho scritto sopra.
Consiglio comunque di usare la funzione:
per scrivere 1000 basta scrivere:
quindi l'indice per il contatore può essere un intero normale al quale sommare 1, 10, 100, 1000 a seconda se si vuole cambiare la prima, seconda, terza o quarta cifra del numero stesso.
Saluti,
Mauro
void WriteIntLCD(int value, char number_of_digits)
La funzione che usa e' della libreria LCD che ho scritto.
Il problema dei caratteri strani deriva dal fatto che l'array deve essere terminato con il carattere /0.
quindi deve essere:
Code:
timetestAr[0]='1';
timetestAr[1]='0';
timetestAr[2]='0';
timetestAr[3]='0';
timetestAr[4]='/0';
II caratteri strani derivano dal fatto la funzione WriteVarLCD continua a scrivere caratteri sull'LCD fino a quando non trova il termine dell'array. inoltre per scrivere 1000 lo 0 e 1 devono essere inviati come caratteri e non come cifre numeriche quindi devono essere tra apici come ho scritto sopra.
Consiglio comunque di usare la funzione:
Code:
void WriteIntLCD (int value, char number_of_digits)
per scrivere 1000 basta scrivere:
Code:
indice = 1000
WriteIntLCD (indice , 4)
quindi l'indice per il contatore può essere un intero normale al quale sommare 1, 10, 100, 1000 a seconda se si vuole cambiare la prima, seconda, terza o quarta cifra del numero stesso.
Saluti,
Mauro
void WriteIntLCD(int value, char number_of_digits)
Ultima Modifica 12 Anni 11 Mesi fa da Mauro Laurenti.
Si prega Accesso o Crea un account a partecipare alla conversazione.
12 Anni 11 Mesi fa #4
da bading
http:\www.d2l.it
Risposta da bading al topic Re: Array di numeri
Scusate se ho dato molte cose per scontato.
In pratica sto lavorando da poco con FREEDOM II e sto usando il testo, esempi e librerie scritte da Mauro Laurenti che infatti l'ha capito subito.
Effettivamente il problema l'avevo risolto scomponendo il numero nelle quattro cifre migliaia(m), centinaia(c), decine(d), unità(u) e usando una funzione tipo:
numero=1000*m+100*c+10*d+u
Però credo che con l'idea Mauro il codice dovrebbe essere più snello
Grazie
In pratica sto lavorando da poco con FREEDOM II e sto usando il testo, esempi e librerie scritte da Mauro Laurenti che infatti l'ha capito subito.
Effettivamente il problema l'avevo risolto scomponendo il numero nelle quattro cifre migliaia(m), centinaia(c), decine(d), unità(u) e usando una funzione tipo:
numero=1000*m+100*c+10*d+u
Però credo che con l'idea Mauro il codice dovrebbe essere più snello

Grazie
http:\www.d2l.it
Si prega Accesso o Crea un account a partecipare alla conversazione.
12 Anni 11 Mesi fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Array di numeri
...dietro le quinte la funzione che ho indicato fa la scomposizione del numero nelle sue diverse cifre.
...quindi il programma e' piu' snello solo dal lato del main, ma fara' comunque diversi conti.
Saluti,
Mauro
...quindi il programma e' piu' snello solo dal lato del main, ma fara' comunque diversi conti.
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- Freedom III e compilazioni fallite
- da Black
-
- MODULO GSM SIM900A
- da FABRIZIO
-
- LTerminal - nuove funzioni
- da Mauro Laurenti
-
- Aggiornamento sito completato
- da Mauro Laurenti
-
- registro a scorrimento PIPO in cascata
- da Mauro Laurenti