Array di numeri

  • bading
  • Autore della discussione
  • Elit Utente
  • Elit Utente
Di più
12 Anni 11 Mesi fa - 12 Anni 11 Mesi fa #1 da bading
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


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
  • 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

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
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:
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.

  • bading
  • Autore della discussione
  • Elit Utente
  • Elit Utente
Di più
12 Anni 11 Mesi fa #4 da bading
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


http:\www.d2l.it

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
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

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Forum - Ultimi messaggi