leo72:
L'ultimo suggerimento è quello di mettere la cartella radice all'inizio del path, cioè "**/**log/1112.txt"
Già provato, ma nulla. Cmq ho fatto dei passi avanti, anche se sono arrivata a qualcosa di ancora più ridicolo.
Sono ripartita da zero, ho scritto un codice solo per il file sulla sd, l'ho integrato ecc.
Ed ecco i risultati.
Questo codice, funziona.
Crea un file di log aaaammgg.csv nella dir LOG sulla sd. Tutti i dati vengono normalmente loggati, da seriale si vede tutto, su LCD i dati dei sensori vengono mostrati correttamente.
void loop () {
// Verifica presenza file di log formattato in TimeStamp:
char filename[] = "LOG/00000000.csv";
getFilename(filename);
if (SD.exists(filename)) {
Serial.print(filename);
Serial.println(" esiste.");
}
else {
Serial.println("File di Log non presente.");
// Se il file di log non esiste viene creato:
Serial.println("Creazione File di Log...");
myFile = SD.open(filename, FILE_WRITE);
// Scrittura dell'Header del file di Log e successiva chiusura:
myFile.println("millis, date, t_out, rh_out, t_in, rh_in, t_h20, t_heat, heat");
myFile.close();
}
Adesso a questo codice voglio aggiungere un paio di righe, per mostrare su LCD la creazione del file di log quando avviene.
Scrivo questo:
void loop () {
// Verifica presenza file di log formattato in TimeStamp:
char filename[] = "LOG/00000000.csv";
getFilename(filename);
if (SD.exists(filename)) {
Serial.print(filename);
Serial.println(" esiste.");
}
else {
Serial.println("File di Log non presente.");
lcd.clear ();
lcd.setCursor(0, 0);
lcd.print("FileLog Missing.");
// Se il file di log non esiste viene creato:
Serial.println("Creazione File di Log...");
lcd.setCursor(0, 1);
lcd.print("Building FileLog...");
myFile = SD.open(filename, FILE_WRITE);
// Scrittura dell'Header del file di Log e successiva chiusura:
myFile.println("millis, date, t_out, rh_out, t_in, rh_in, t_h20, t_heat, heat");
myFile.close();
delay(1000);
lcd.clear ();
}
Non funziona nulla. La seriale smette di dar segni di vita dopo i mess del setup.
Lo schermo LCD è vuoto e non vengono loggati dati.
Paradossalmente se avvio questo secondo codice senza sd inserita, i messaggi appaiono corretti, la seriale va e i dati appaiono sullo schermo.
Perché due righe di lcd.print fanno questo??
ed anche verrebbe da chiedersi, perché fanno questo solamente quando vado a creare un file in sottodir, mentre in root non ci sono problemi?
Mboh.