Hallo, ich habe eine Frage zu instr. In basic geht folgender Befehl: if instr(text,"Hallo") > 0 then end if aber anscheinend unter bascom nicht. Keine Ahnung wieso.
Dann schau mal hier nach: https://avrhelp.mcselec.com/index.html?instr.htm Wird wohl auch daran liegen, dass Mann und Frau immer eine Variable nutzen muss.
Ich nutze software uart. Die Variabellänge text wächst natürlich an, vorher habe ich den Inhalt der Variabele gelöscht. Wenn ich bla(1) u. bla(2) nutze, funktioniert es. Es schaltet eine Led an, oder deaktiviert eine Led. Nehme ich aber für bla(1) z.b "weiter" u. für bla(2) z.b "stopp" funktioniert es nicht und ich weiss nicht wieso. Folgenden Programmiercode habe ich: $regfile = "m8def.dat" $crystal = 1000000 Baud = 9600 $swstack = 32 $hwstack = 32 $framesize = 40 Config Portb.0 = Output Led Alias Portb.0 Dim Text As String * 64 Dim Var As Byte Dim Pos(2) As Byte Dim Bla(2) As String * 24 Bla(1) = "a" Bla(2) = "b" Text = "" Open "comd.0:9600,8,n,1" For Input As #1 Do Var = Inkey(#1) If Var <> 0 Then Text = Text + Chr(var) Gosub Pruefen End If Loop Close #1 End Pruefen: Pos(1) = Instr(text , Bla(1)) If Pos(1) > 0 Then Led = 1 Text = "" End If Pos(2) = Instr(text , Bla(2)) If Pos(2) > 0 Then Led = 0 Text = "" End If Return
@Rufus Τ. F....danke für den Hinweis...werde es gleich nochmal testen...beim ersten Test kamen ganz andere Zeichen an rx raus, obwohl ich was ganz anderes bei tx gesendet hatte.
frage schrieb: > $regfile = "m8def.dat" > $crystal = 1000000 Moin, Lass mich raten: Interner RC-Oszi/8? 9600baud bei 1MHz ergibt 7,84% Fehler. Das kann nicht funktionieren. Mit 4800 könnte es mit Glück funktionieren. Grundsätzlich geht das mit dem internen RC vielleicht mal zufällig, der ist zu ungenau für Uart, vor allem bei dem ollen Mega8. Nein, mit 8MHz oder geringerer Baudrate wird die Ungenauigkeit nicht besser! Mit 1MHz und 9600 funktioniert es aber ziemlich sicher gar nicht. Gruß, Norbert
@Rufus Τ. F. ..ja hat geklappt, also ich sende Daten zum Atmega u. schicke sie dann direkt wieder über seriell zurück. UND ja..es gab fehlerhafte Informationen... DAHER nochmal einen dicken Dank an Norbert S. Bei software uart, klappt es bei mir mit einer Taktfrequenz von 1 MHZ nur mit 1200 baud... Nochmal vielen Dank für die nützlichen Informationen.
Moin, Der Baudratenfehler ist rechnerisch bei 600 kein Stück besser als bei 1200. Daß das ein Trugschluss ist, kann man nicht oft genug wiederholen. Es war dann nur Zufall, daß es bei 600 besser ging. Der RC ist zu ungenau! Geringere Baudrate macht es nicht besser! Gruß, Norbert
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.