Hi! Mein aktuelles Projekt loggt alle 4 Minuten auf eine SD-Karte 200 Bytes, also 72.000 Bytes/Tag bzw. 2.6280.000 Bytes/Jahr. Die Daten sollen mehr oder weniger regelmäßig von einem PC abgerufen werden. Der PC hängt am usart (57600Baud angeschlossen). Wie sollte man dies von Konzept her am Geschicktesten lösen? 1) Einfachster Ansatz: Die Daten immer in die gleiche Datei schreiben. Fragt der PC an, alle Daten ausgeben und danach die Datei oder deren Inhalt löschen, wenn der PC den Empfang bestätigt hat. Wird mir das die SD/MMC-Karte übel nehmen? Ich würde ja schreiben, löschen, schreiben, löschen..... und eventuell immer wieder die Datei öffnen, schließen, neu anlegen usw.. Im schlimmsten Fall alle 4 Minuten. 2) Die Daten immer in die gleiche Datei schreiben, aber nie löschen. Stattdessen irgendwo speichern, bis wohin zuletzt übertragen wurde. Idee: Einen "Puffer" anlegen, der einen Datensatz aufnehmen kann und somit nur auf die SD-Karte schreibt, wenn der PC ihn nicht abruft, bevor der nächste Datensatz ansteht. Gruß, Chris
Wenn Du sicherstellen musst, das wärend der Übertragung weiter geloggt wird, müsstest Du das Schreibfile wechseln (in ein neues schreiben), dann das alte übertragen und dann löschen. Wenn deine FAT-Lib nur eine Datei gleichzeitig kann, gibts damit auch Probleme. Nächster Ansatz wäre: eine Datei mit konstanter Größe auf der SD, Schreib/Lesezugriff über 2 Zeiger. Wenn die SD immer im Gerät bleibt und für nichts anderes genutzt werden soll, könntest Du ja auf das Dateisystem ganz verzichten und die Karte ganz als Ringspeicher nutzen. mfG ingo
Hi! Gleichzeitigs Loggen und Übertragen ist nicht gefordert. Die Übertragung läuft in einer eigenen Schleife, die erst verlassen wird, wenn alle Daten übertragen wurden. Gruß, Chris
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.