hallo, ich habe ein programm mit fastavrbasic um die mmc-karte zu beschreiben. ich kann die karte mit diesem code beschreiben, aber immer auf sector 0, obwohl ich sector 3 angebe. die schiebefunktionen habe ich mit bascom ausprobiert , sind die gleichen wie mit fastavr, die einzelnen werte stimmen für den übergabebuffer überein. mit bascom kann ich die karte ordentlich beschreiben , es wird der sector 3 beschrieben. was sztimmt da nicht ??hm.. der code : $Device = M32 $Stack = 32 $Clock = 8 $Baud = 19200 $ShiftOut Data=PORTB.1, Clock=PORTB.3, Msb $ShiftIn Data=PORTB.2, Clock=PORTB.3, Msb Declare Sub Mmc_init() Declare Sub Mmc_write() Dim Dout As Byte Dim Din As Byte Dim A As Word Dim Cmd(6) As Byte Dim Buffer(515) As Byte Dim Tmp As Long Dim Sector As Long $Def Mcs =PORTB.0 $Def Sck =PORTB.3 DDRB.0=1 WaitMs 255 Sector = 3 Buffer(0) = &HFE Buffer(513) = &HFF Buffer(514) = &HFF For A = 1 To 512 Buffer(a) = 71 Next Mmc_init() WaitMs 255 Mmc_write() End Sub Mmc_init() Set Mcs Dout = &HFF For A = 0 To 10 ShiftOut Dout Next Anfang: Reset Mcs Cmd(0) = &H40 Cmd(1) = 0 Cmd(2) = 0 Cmd(3) = 0 Cmd(4) = 0 Cmd(5) = &H95 For A = 0 To 5 ShiftOut Cmd(a) Next Dout = &HFF ShiftOut Dout din=ShiftIn If Din <> 1 Then GoTo Anfang End If Print Din Anfang1: Cmd(0) = &H41 Cmd(1) = 0 Cmd(2) = 0 Cmd(3) = 0 Cmd(4) = 0 Cmd(5) = &HFF For A = 0 To 5 ShiftOut Cmd(a) Next Dout = &HFF ShiftOut Dout din=ShiftIn If Din <> 0 Then GoTo Anfang1 End If Print Din Set Mcs End Sub Sub Mmc_write() Set Mcs cmd(0)=&h58 cmd(1)=0 cmd(2)=0 cmd(3)=0 cmd(4)=0 cmd(5)=&hff Sector= Shift(Left,9,Sector) tmp=Sector & &hff000000 cmd(1)=Shift(Right,24,tmp) tmp=Sector & &h00ff0000 cmd(2)=Shift(Right,16,tmp) tmp=Sector & &h0000ff00 cmd(3)=Shift(Right,8,tmp) Anfang2: Reset Mcs For A = 0 To 5 ShiftOut Cmd(a) Next Dout = &HFF ShiftOut Dout din=ShiftIn If Din <> 0 Then GoTo Anfang2 End If Print Din Dout = &HFF ShiftOut Dout For A = 0 To 514 Dout = Buffer(a) ShiftOut Dout Next WaitUs 10 din=ShiftIn Print Din Dout = &HFF ShiftOut Dout Set Mcs End Sub
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.