Bascom Avrdos & Sd karte Hängt Prozessor auf

Gast #3021561
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren