Hallo Ich habe heute das erste mal eine Sd karte an einen Avr angeschlossen. Soweit scheint es zu klappen er gibt mir den gewünschten Sektor über die rs232 aus. Doch wenn ich den Sektor erneut Lesen oder Schreiben möchte stürzt mein Programm ab und macht einfach garnix mehr. Prozessor ist ein mega16 Sd Karte, Pegelwandler und Spannungsversorgung (der Karte) sind auf dem "Pollin Net io Addon Board" somit denke ich sollte der anschluss der Karte soweit ok sein. $regfile = "m16def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 64 $framesize = 64 $baud = 9600 Const Cmmc_soft = 0 $include "\\Server\Projekte\28-01-13 sd karte m16\Config_MMC.bas" Dim Abuffer(512) As Byte ' SRAM-Bereich für den Transfer Dim Wsrampointer As Word ' Adress-Pointer für den Drive... Routine Dim I As Word Dim Sectornr As Long Wsrampointer = Varptr(abuffer(1)) Gbdriveerror = Driveinit() ' Init MMC/SD Card Print "INIT "; Print Gbdriveerror Sectornr = 1 Print "Rdy0" Gbdriveerror = Driveinit() ' Init MMC/SD Card Do Print "Rdy1" Wsrampointer = Varptr(abuffer(1)) Print "Rdy2" Gbdriveerror = Drivereadsector(wsrampointer , Sectornr ) 'dauert 8ms Print "Rdy3" For I = 1 To 511 Print Chr(abuffer(i)); Next I Waitms 1000 Print "Rdy4" Gbdriveerror = Driveinit() Print Gbdriveerror Loop Programm ist kurz und übersichtlich. Die "Rdy"'s lass ich mir ausgeben um zu wissen wo er Stecken bleibt Meistens schafft er Zwei durchgänge manchmal nur einen manchmal Drei. Die Driveinit am Ende war ein Versuch die Karte neuzustarten aber ohne Erfolg. Mit dem eintrag Driveinit am ende bleibt er meistens bei Rdy4 stecken also beim init ohne init beim Drivereadsector. Andere Karte (265mb oder 1Gb Micro sd in adapter) Gleiches ergebnis und Ohne karte gibt die Init den Fehler 255 aus und hängt sich auf oder eben auch erst beim Drivereadsector. Schreiben und auch Lesen sind aber nach jedem Reset 1-3 mal Möglich Woran könnte das liegen?
Dein ATMEga16 hat nur 1kB RAM. Schau mal in die Doku von Avrdos ob das reicht.
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.