Go Down

Topic: SD datalogging lento ? (Read 526 times) previous topic - next topic

ratto93

Sto usando la SD library, per logare dei dati letti in maniera analogica, ho però un problema, salva i dati ad intervalli troppo lunghi, mi salva i tre dati ogni circa un secondo ma vorrei aumentare la velocità di salvataggio, avete idee di come posso fare ? la SDfat lib non posso usarla perchè il mio ATmega funziona a 8MHz e mi da dei problemi..
Grazie in anticipo..
Se corri veloce come un fulmine, ti schianterai come un tuono.

leo72

http://elm-chan.org/fsw/ff/00index_p.html
Petit FAT FS
E' limitata nelle funzioni ma ha un ridotto impatto sulle risorse, forse è anche più veloce. Non so.

Considera comunque che molta della lentezza ce l'hai perché accedi ad un file system quindi la libreria deve scrivere i dati come file e non semplicemente riversandoli su una memoria. Potresti provare con una memoria Flash usandola proprio come... "memoria": esistono chip I2C di diversi MB.

ratto93

La ricordo la Petit Fs, me l'avevi consigliata con i tiny 84 ma non mi ci son trovato molto bene...  :smiley-roll-sweat:
ad ogni modo ho trovato una soluzione..
questo era il codice di prova prima:
Code: [Select]
#include <SD.h>

File file;

void setup() {
  Serial.begin(9600);
  SD.begin(10);
  file = SD.open("WR_TEST1.TXT", FILE_WRITE);

  while(millis() < 1000);  // delay so mills() is four digits

  for (uint8_t i = 0; i < 100; i++) {
    file.println(millis());
  }
  file.close();
}

void loop() {}

sostituendo il FILE_WRITE con O_CREAT | O_WRITE la velocità di salvataggio aumenta esponezialmente !!!
Se corri veloce come un fulmine, ti schianterai come un tuono.

ratto93

Pardon, non salva correttamente, ora ci lavoro e scrivo eventuali novità
Se corri veloce come un fulmine, ti schianterai come un tuono.

pablos

#4
Jun 03, 2012, 10:50 pm Last Edit: Jun 04, 2012, 12:06 am by pablos Reason: 1
A questo tuo treadh "Possibile che SDfat vada ed SD.h no ???"
http://arduino.cc/forum/index.php/topic,107093.msg805469.html#msg805469


Ve beh, poi provo e ti so dire  ;)


Aspetto ancora risposta :)
Quindi come hai risolto?

ciao


no comment

Go Up