Go Down

Topic: 'secondi' cannot be used as a function (Read 1 time) previous topic - next topic

lesto

unsigned long secondi_ulong = secondi();

ecco la riga incriminata!
e anche la dichiarazioni che fai "int long" non è che mi convincano proprio... ma quì non so se creano problemi, sinceramente io uso direttamente long
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

iw1evm (Tecno)

Io ho cercato di usare per mio uso questa parte di codice

Code: [Select]
char millis_char[16];
  unsigned long millis_ulong = millis();
  sprintf(millis_char,"%lu", millis_ulong); // Works OK: sprintf uses char arrays.
  LCDA.DisplayString(0, 0, (unsigned char *)millis_char, 16);// The LCDA function requires unsigned char arrays.



che ho trovato in rete. che ho provato cosi nel mio programma funziona stampando sul dispay i millisecondi
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1287283512
tecnico

lesto

#7
Jan 08, 2011, 10:10 pm Last Edit: Jan 08, 2011, 10:10 pm by lestofante Reason: 1
ah ok, tu hai visto che esiste la millis() e allora ti sei inventato la secondi(), giusto?
l'elenco di funzioni di arduino lo trovi quì:
http://arduino.cc/en/Reference/HomePage
allora, leggi i MilliSecondi (che partono da 0 ogni volta che accendi arduino, e continuano a aumentare per circa 55 giorni, poi overflow e riprende da 0) e dividi per 1000...
A questo punto potresti crearti la funzione secondi() che fa questo al posto tuo mi dirai... NO!
perchè la parola secondi è già stata usata come nome di variabile nel tuo codice, quindi o chiami in altro modo la variabile o la funzione.
Ah a lungo andare (se ti metti a contare minuti, ore ecc..) ti accorgerai che arduino è impreciso, si usano orologi esterni per precisione da orologio, appunto  ;D
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

iw1evm (Tecno)

il problema è in più generale come stampare sul diplay lcd un intero o qualsia numero con segno oppure senza .Quindi come convertire un intero a unsigned char il fatto di aver preso i secondi era solo un prova per vedere se funzionava.
Tecno

lesto

#9
Jan 08, 2011, 10:36 pm Last Edit: Jan 08, 2011, 10:36 pm by lestofante Reason: 1
ah ok...
hai il tuo intero, ok?
il resto della divisione per 10 è la cifra più a sinistra.
questa cifra + il valore dello '0' char ti da il valore del char corrispondente a quel numero.
salvi il valore nella prima cella dell'array.
ora fai che il tuo numero è uguale a se stesso diviso 10, ciò vuol dire che elimini la cifra che hai letto prima.
ricomincia :-)
quando l'intero è <=0 hai finito. aggiungi il simbolo - in coda all'array di char(se serve), lo ribalti e voilà
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up