- SF800 Solar Speicher Tutorial         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Problem mit SPI

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2010
    Beiträge
    11
    Anzeige

    E-Bike
    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.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    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.

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2010
    Beiträge
    11
    Oh stimmt
    Habs nun verbessert und es ändert sich trotzdem nichts

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    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.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    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

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2010
    Beiträge
    11
    Ahhh das sieht schon besser aus . Mit TeraTerm sieht man da leider nicht allzuviel aber ich werd da nachher mal mit dem HexTerminal drauf gucken.
    Dank dir vielmals!

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2010
    Beiträge
    11
    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 .

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    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.

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2010
    Beiträge
    11
    Was ist den der ASCII Wert von einem CRLF?

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2008
    Ort
    Villingen-Schwenningen
    Beiträge
    143
    schau in die bascomhilfe unter ascii chart

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress