ich hab hier und im rest vom netz nur sachen mit fat gefunden, und die brauchen ja recht viel speicher.
da ich hier noch nen haufen mega8 rumliegen habe würd ich gerne mit diesen, und deswegen mit möglichst wenig code, ca 10 byte von einer sd karte lesen
also vom prinzip her dachte ich mir
bytes auslesen
den dadurch definierten befehl ausführen
nächsten 10 byte lesen
...
ist sowas möglich ?
ich hab keine ahnung wie ich überhaupt anfangen soll
Schau mal da
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=29274
Sollte schon einige Antworten liefern. Findet man über die Suche ;-)
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
$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 ?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.