Hallo, ich weiss, dass es schon ein paar Diskusionen über SD-Karten gegeben hat... aber ich bin immer noch nicht ganz schlau geworden. Ich möchte mir einen GPS-Loggerbauen, der jede Sekunde den NMEA Datensatz auf eine SD Karte schreibt (ich verwende einen Atmega8). Die SD Karte möchte ich später in einem Kartenleser am PC auslesen und dann die GPS Daten als Weg z.B. in Google Earth anzeigen. Ich habe bisher alles in Assembler geschrieben (GPS auslesen usw.), jetzt fehlt mir noch das Speichern auf der SD Karte. Wie ist das denn am einfachsten zu realieren? Habe gelesen, dass manche eine Datei auf der Karte anlegen und dann an die Adresse der Datei schreiben - funktioniert das? Ansonsten habe ich auch Quellcode von Ulrich Radig gefunden, aber der ist ja in C. Dann müsste ich meinen Assemblercode in C integrieren oder? Hat mir jemand einen Tip wie ich am besten an das ganze rangehen könnte? Gibt es vielleicht auch irgendwo eine gute Erklärung? Gruß Johnson
Was Du brauchst, ist ein FAT16 Dateisystem auf Deiner Karte.
Geht auch. Zumal er es eben nicht komplett implementieren muss. Du musst nur die FAT finden. Dann gehst du in den Root-Ordner, holst dir die Clusternummer der datei "meine.dat" (oder so) und schreibst ab dort in die Datei. Die Datei musst du vorher am PC mit entsprechender Größe anlegen. Ok, in Assambler ists schon etwas aufwand, aber auf jeden Fall machbar, vor allem, weil er eben sehr viele Einschränkungen eingehen kann. Besorg dir auf jeden Fall das White-Paper von Microsoft. Da ist alles drin beschrieben. Sebastian
Da könntest du auch mal vorbeischauen http://www.mikrocontroller.net/articles/AVR_FAT32 :) Um die eine oder andere 32 Bit Operation wird man nicht rum kommen und auslesen eines Sektors 512 Byte...Sonst, wenn man sich etwas einschränkt ;)
Das Auslesen des Sektors dürfte mit dem Mega8 aber schon ein Problem darstellen. Der Mega328 hat in jedem Fall mehr Ram und Flash und dasselbe Gehäuse.
Auch wenn es den johnson nicht mehr zu interessieren scheint, mit nem mega8 wäre das trotzdem kein Problem es ist unglaublich was man mit 1KByte Ram so alles machen kann :)
Vielen Dank erstmal für die Antworten! Dann werde ich das mit der SD Karte doch lieber in C machen... Manche haben ja ihren Quellcode dazu bereitgestellt (z.B. Ulrich Radig) habe ich hier gelesen. Ich denke ich werde es damit versuchen... ich möchte mich nicht erst Wochen in das ganze einarbeiten. Ich möchte aber möglichst meine Funktionen in Assembler weiterbenutzen. Welche Möglichkeiten kennt ihr um C und Assembler zu kombinieren? Man kann ja soweit ich weiss den Assembler Code per Inline Assembler in C integrieren oder man ruft die Assemblerfunktionen im C Programm auf. Kann ich auch die C Funktionen in Assembler aufrufen? Und wie funktioniert das ganze? Kann mir jemand mehr dazu sagen oder mir einen Tip geben wo ich mehr dazu finden kann?
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.