salve ragazzi sono nuovo nel forum sto scrivendo qui per il semplice motivo che non riesco a trovare un modo per verificare se ci sono dei dati in un rtc… vi spiego meglio.
ho un rtc ds1302 e uso la libreria DS1302.h quello che cerco di fare e semplice ovvero appena accendo il mio sistema faccio una if per controllare se nel ds1302 cè gia un orario memorizzato se no lo imposto altrimenti continuo. Il problema è che non riesco a trovare la condizione che interroga rtc per farmi dire se in memoria detiene un orario oppure no.grazie delle eventuali risposte
alla fine ho risolto ragazzi pero ancora non è finita allora girovagando per il web ho capito che la funzione rtc.getTimeStr() da una stringa quindi lo confrontata con il valore di default del rtc che è (00:00:00) (ore min sec) ed ho risolto. ma un altro problema simile mi tormenta ovvero io immetto su un contatore int un valore ad esempio 10 per farlo confrontare con la data corrente dovrei convertirlo in una stringa e mettero sotto questa forma ("10:00:00) come dovrei fare ??
int a=10;
String z=rtc.getTimeStr();
if(z>(“a:00:00”))…
dovrei semplicemente straformare il valore 10 int nel simbolo 10 stringa
non puoi fare un confronto tra due stringhe con il > o <. devi usare delle variabili numeriche.
nell’esempio “serial hard” trovi la soluzione:
t = rtc.getTime();
Serial.print("It is the ");
Serial.print(t.dow, DEC);
Serial.print(". day of the week (counting monday as the 1th), and it has passed ");
Serial.print(t.hour, DEC);
Serial.print(" hour(s), ");
Serial.print(t.min, DEC);
Serial.print(" minute(s) and ");
Serial.print(t.sec, DEC);
Serial.println(" second(s) since midnight.");
in questo modo ottieni ore minuti e secondi direttamente in formato int e puoi fare il confronto con la tua variabile
alex101094:
girovagando per il web ho capito che la funzione rtc.getTimeStr() da una stringa
se avessi guardato nella libreria invece di girovagare per il web l’avresti scoperto in 2 secondi
grazie ma l avevo vista ma non capisco come utilizzarla ad esempio imposto con un contatore int a= 10
e faccio il confronto if((t.hour)>a) ma non funziona... ovviamente
ho definito come da esempio Time t=rtc.getTime()