huhu nochmal

ich hab nu wirklich alles aufgesaugt was ich gefunden habe aber leider bleibt mir der zugriff auf meine sd karten immer noch verwehrt

mittlerweile hab ich eine platine gebaut mit den level shiftern von ulrich radig

cs = portb.2
di = portb.3
do = portb.4
sck = portb.5


und mir folgenden code zusammenkopiert
Code:
$regfile = "m8def.dat"

$crystal = 16000000

$baud = 19200

Initlcd
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portc.2 , Rs = Portd.4
Config Lcdbus = 4
Cls
Cursor Off Noblink

Config Pinb.1 = Output
Led Alias Portb.1

Enable Interrupts

Config Clock = Soft

Config Date = Dmy , Separator = .

Config Pinb.2 = Output
   Mmc_cs Alias Portb.2
   Set Mmc_cs

Config Pinb.2 = Output
   Spi_ss Alias Portb.2
   Set Spi_ss

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1

Config Serialin = Buffered , Size = 80 , Bytematch = 13

Spiinit

Const Cperrdrivereset = 225                                 ' Error response Byte at Reset command
Const Cperrdriveinit = 226                                  ' Error response Byte at Init Command
Const Cperrdrivereadcommand = 227                           ' Error response Byte at Read Command
Const Cperrdrivewritecommand = 228                          ' Error response Byte at Write Command
Const Cperrdrivereadresponse = 229                          ' No Data response Byte from MMC at Read
Const Cperrdrivewriteresponse = 230                         ' No Data response Byte from MMC at Write
Const Cperrdrive = 231
Const Cperrdrivenotsupported = 232                          ' return code for DriveGetIdentity, not supported yet
Const Cmmc_soft = 0

Waitms 1                                                    ' Wait some time before initialising MMC/SD

Dim Gbdriveerror As Byte                                    ' General Driver Error register
Dim Gbdriveerrorreg As Byte                                 ' Driver load Error-Register of HD in case of error
Dim Gbdrivestatusreg As Byte                                ' Driver load Status-Register of HD on case of error
Dim Gbdrivedebug As Byte

Dim CR_Received as Byte
Dim Empfangsstring As String * 20
Dim Mmc_error As Byte

$lib "MMC.LIB"
$external _mmc



Gbdriveerror = Driveinit()
Print "los gehts :)"

DO
                Locate 1 , 1 : Lcd "gbde"
                Locate 2 , 1 : Lcd Gbdriveerror
                Locate 1 , 6 : Lcd "mmc"
                Locate 2 , 6 : Lcd Mmc_error
                Locate 1 , 10 : Lcd "str"

Disable Interrupts

If Cr_received = 1 Then

               Cr_received = 0
               Enable Interrupts
               Input Empfangsstring
               Locate 2 , 10 : Lcd "       "
               Locate 2 , 10 : Lcd Empfangsstring

        Else
               Enable Interrupts
End If

LOOP

End


Serial0charmatch:
CR_Received = 1
Return
und als antwort kommt immer 225 egal ob ne karte drin is oder nich

kann von euch sdkartenlesenden einer den fehler erkennen den ich da mache ?