-
Ich hab das nun so gelöst:
Code:
$regfile = "M128def.dat"
$crystal = 8000000
$baud = 19200
Dim Value As Byte
Dim Variable1 As String * 15
Dim Variable2 As String * 15
Dim Variable3 As String * 15
Dim Befehl As String * 20
Dim Test As String * 20
Config Porte.6 = Output
Config Spi = Soft , Din = Pinb.3 , Dout = Pinb.2 , Clock = Pinb.1 ,
Spiinit
Befehl = "Dir"
Do
Porte.6 = 1
Variable1 = Mid(befehl , 0 , 1)
Value = Asc(variable1)
Spiout Value , 10
Variable2 = Mid(befehl , 0 , 1)
Value = Asc(variable2)
Spiout Value , 10
Variable3 = Mid(befehl , 0 , 1)
Value = Asc(variable3)
Spiout Value , 10
Spiin Test , 10
Printbin Test
Wait 2
Loop
End
Meintest du das so? Weil da steckt auch noch ein Fehler drin. Der Controller empfängt immernoch nur Murks.
-
Hallo Schlaumi89,
ich hätte jetzt für die Ausgänge auch ein Ausgangsregister benutzt, also so
Config Spi = Soft , Din = Pinb.3 , Dout = Portb.2 , Clock = Portb.1
Warum gibst du immer 10 Byte aus?
SPIOut Value, 10
Wenn du wirklich "Dir" rüberschicken willst, dann musst du die MID() auch auf das erste, zweite und dritte Zeichen setzen.
-
Oh stimmt :D
Habs nun verbessert und es ändert sich trotzdem nichts :(
-
Was mir auffällt ist, das du 3 mal das Zeichen Nr 0 aus dem String Befehl sendest. Du willst doch aber das 1. Zeichen, dann das 2. Zeichen und das 3. senden?
Du musst
Variable1=Mid(Befehl,1,1) und dann
Variable1=Mid(Befehl,2,1) usw. schreiben.
-
versuchs mal so:
Code:
$regfile = "M128def.dat"
$crystal = 8000000
$baud = 19200
Dim J as Byte
Dim Zeichen as String * 1
Dim Value As Byte
'Dim Variable1 As String * 15
'Dim Variable2 As String * 15
'Dim Variable3 As String * 15
Dim Befehl As String * 20
Dim Test As String * 20
Config Porte.6 = Output
Config Spi = Soft , Din = Pinb.3 , Dout = Pinb.2 , Clock = Pinb.1 ,
Spiinit
Befehl = "Dir"
Do
Porte.6 = 1
For j = 1 to len(Befehl)
Zeichen = Mid(Befehl , j , 1)
Value = ASC(Zeichen)
SPIOUT Value , 1
Next
'Variable1 = Mid(befehl , 0 , 1)
'Value = Asc(variable1)
'Spiout Value , 10
'Variable2 = Mid(befehl , 0 , 1)
'Value = Asc(variable2)
'Spiout Value , 10
'Variable3 = Mid(befehl , 0 , 1)
'Value = Asc(variable3)
'Spiout Value , 10
'Spiin Test , 10
'Printbin Test
Wait 2
Loop
End
-
Ahhh das sieht schon besser aus :D. Mit TeraTerm sieht man da leider nicht allzuviel aber ich werd da nachher mal mit dem HexTerminal drauf gucken.
Dank dir vielmals!
-
So hab mal das Programm auf den Mega aufgespielt und mit Hexterm drüber geschaut.
Ich hab mal einen Screen davon gemacht:
http://img529.imageshack.us/img529/5274/unbenannttf.png
Das ist aber glaub ich immer noch nicht richtig. Weil eigentlich soll er schreiben das kein Medium vorhanden ist :(.
-
und woher weis der PC, das mit dem String "DIR" der Befehl komplett ist?
Muste vielleicht noch ein CRLF senden?
Mit deinem Screenshoot kann ich nichts anfangen, da kann ich nichtmal den DIR-Befehl raus erroieren.
-
Was ist den der ASCII Wert von einem CRLF?
-
schau in die bascomhilfe unter ascii chart