Hallo, habe folgenden Code in meinem AVR : $regfile = "8535def.dat" $crystal = 4194304 $baud = 9600 Dim I As Byte Config Porta = Output Do If Usr.rxc = 1 Then I = Udr Select Case I Case "LedAn" Porta.0 = 1 Case "LedAus" Porta.0 = 0 Case Else Print "Unbekannter Befehl" End Select End If Loop End Wenn ich jetzt über die serielle das Wort "LedAn" sende, passiert nichts. Liegt wahrscheinlich daran, das ich nur 1 Byte senden kann (If Usr.rxc = 1 Then). Ich will aber komplette Worte, also mal 4 Zeichen, mal 5 oder 6, senden können. Kann mir jemand helfen ? mfg Kay
du hast i als byte declariert. ein byte kann kein wort enthalten. du müsstest das wort, was übermittelt wird aus den einzelnen buchstaben zu einem string zusammensetzen. ist zwar nicht wirklich die lösung für dein problem, aber probiers mal hiermit: dim I as String * 5 Input I If I = "Ledan" then....
Hallo Kay, das Empfangen/Auswerten von Datenpacketen mit unterschiedlicher Länge ist durchaus möglich, ist aber für deinen Fall eigendlich nicht nötig. Sende doch einfach nur e i n Byte/Zeichen, damit kannst du 256 Aktionen in deinem AVR auslösen: In Bascom: DDRB = &B11111111 ' PortB alles Ausgänge Dim Eingang As Byte ' Empfangenes Byte Do If Usr.rxc = 1 Then Eingang = UDR ' Byte aus Empfangsregister lesen ' RXC zurücksetzen Select Case Eingang Case 97 ' Befehl a gesendet PortB.0 = 1 ' PortB.0 an Case 65 ' Befehl A gesendet PortB.0 = 0 ' PortB.0 aus Case 117 ' Befehl u gesendet PortB = 255 ' PortB alle an Case 85 ' Befehl U gesendet PortB = 0 ' PortB alle aus Case Else Print "Unbekannter Befehl" End Select End If Loop End Grüße ATmega8Tester
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.