PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SD Karte



nevermind
04.04.2006, 16:17
Hallo Leute!

Ich werd gleich verückt... ich will mit meinem Mega32 ne SD Karte ansteueren und programmiere in Bascom. Ich bekomms aber grad einfach net auf die Reihe und find irgendwie überhaupt nix dazu grad.

Hat mir einer vllt kurz nen Link zu ner Doku oder nem Source ?? Finde nur C-Routinen.. :(

Sorry euch genervt zu haben ^^

Gruß
Dom

oe9vfj
04.04.2006, 17:12
Schau mal auf http://members.aon.at/voegel . Dort gibt es im Downloadbereich einen Treiber (BASCOM-Library), mit welcher man SD/MMC Karten ansteuern kann. Mit dem Einbinden dieses Treibers können die BASCOM-AVR Befehle DriveReset, DriveInit, DriveReadSector und DriveWriteSector Speicherblöcke von 512 Bytes (Sektor) von der Karte lesen bzw dorthin schreiben.
Du benötigst dazu die CONFIG_MMC.BAS und MMC.LBX. In der CONFIG_MMC.BAS musst Du eventuell noch Anpassungen der Konfiguration auf Deine Hardware vornehmen.

nevermind
04.04.2006, 20:17
Hab mir die jetzt gezogen... Aber komm damit iwie net klar... Ich seh des schon richtig, dass ich den Inhalt der Config.bas in mein Prog einfügen muss oder??

wie funktionieren die Funktionen? Also mit welchem Syntax??

nevermind
05.04.2006, 05:33
Maaan... kann mir den niemand helfen????

Xtreme
05.04.2006, 13:07
Die musst du vermutlich einbinden, nich den Text kopieren und dann einfügen ;-)

oe9vfj
05.04.2006, 14:04
MIt $INCLUDE kannst Du den Code einbinden, ohne dass er direkt in dem Hauptprogramm aufscheint.


$Include "Config_MMC.bas"
If Gbdriveerror <> 0 Then
Print "Fehler beim Initialisieren der MMC/SD Karte"
End If

Der Code in Config_MMC.bas ruft auch die Initialisierungs-Routine auf. Ob diese erfolgreich war ist danach aus der Variable gbDriveError ersichtlich. Ist diese Variable 0, dann konnte die Karte erfolgreich initialisiert werden.

Nun können mit den BASCOM-AVR Befehlen DriveReadSector und DriveWriteSector Speicherblöcke mit 512 Bytes tranferiert werden.

Siehe dazu im Help-File unter DriveReadSector und DriveWriteSector

DIYLAB
05.04.2006, 19:47
Moin,

so wie ich das verstanden habe, läuft das AVR-DOS erst ab Mega128 / Mega103. Oder doch nicht?

Viele Grüße,
Bruno

oe9vfj
06.04.2006, 09:30
Es ist richtig, dass AVR-DOS ein Mindest-SRAM Bedarf von etwa 1200 Bytes hat. Die hier vorgeschlagene Variante arbeitet aber nicht mit AVR-DOS, sondern lediglich mit dem Karten-Treiber. Es wird hier daher ein Buffer im SRAM von 512 Bytes benötigt, welchen man auf die Karte schreiben oder von der Karte befüllen kann. Die Speicherung auf der Karte ist dann natürlich nicht DOS-kompatibel. Sofern die Daten auf enem PC eingelesen werden sollen, braucht man auf dem PC ein Programm welches die einzelnen Sektoren lesen kann.
Es muss auch beachtet werden, dass Karten wie CF-Card, SD oder MMC mit sogenannten Flash-Speicher arbeiten, welche nur eine begrenzte Anzahl von Schreibvorgängen vertragen. Die Datenspeicherung ist daher so vorzunehmen, dass nicht einzelne Sektoren wesentlich häufiger als andere beschrieben werden.