Kollege,
Gosub Machwas -----> Machwas ,,, goto ist tödlich
Auf gosub muß return kommen, sonst spinnt er sich weg.
Testen tu' erstmal mit einem Terminal, Zeichen kannst du ja mal andere nehmen (65 == "A", 66 == "B") oder so.
Druckbare Version
Kollege,
Gosub Machwas -----> Machwas ,,, goto ist tödlich
Auf gosub muß return kommen, sonst spinnt er sich weg.
Testen tu' erstmal mit einem Terminal, Zeichen kannst du ja mal andere nehmen (65 == "A", 66 == "B") oder so.
Testen kann er's auch mit seinen werten 70="F" 80= "P"
Stimmt, mit den returns hast du recht.
Dann muß aber auch hinter das Hauptprogramm ein END
Sonst spinnt er auch.
Inkey bezieht sich auf die serielle Schnittstelle und wartet nicht bis ein Zeichen kommt, sondern gibt eine "0" raus wenn kein Zeichen empfangen wurde.Zitat:
bleibt da solange hängen bis eine taste gedrückt wird. mit inkey kannste keine baud-botschaft abfragen
Von daher sollte es gehen.
Hab' Inkey aber noch nie benutzt. Vielleicht irre ich mich ja auch, aber so verstehe ich das Handbuch.
Im Sim geht's auch so. Hab' nur noch LCD Befehle reingemacht, damit man was sieht ;)
GrußCode:
$baud = 9600
Config Portb = Output
Dim Zeichen As Byte
Zeichen = 0
Rsabfrage:
Do
Zeichen = Inkey()
Loop Until Zeichen <> 0
If Zeichen = 70 Then Gosub Machwas
If Zeichen = 80 Then Gosub Mach
Goto Rsabfrage
End 'end program
Machwas:
Portb.1 = 1
Lcd "1"
Return
Mach:
Portb.1 = 0
Lcd "2"
Return
Christopher
Du hast definitiv recht, inkey warte nicht. Du solltest ihn aber verwenden, da der Befehl auch mit "config serialin=buffer" kooperiert. Wenn du UDR selbst liest, amputierst du ihn da.
Vielen Dank für die Hinweise! ich werde es das Wochenende mal ausprobieren... Irgendwann muss es doch laufen!
Frohe Pfingsten!
Benedict
Probiers mal hiermit.
getacoCode:$regfile = "m8535.dat"
$crystal = 10000000
$baud = 9600
Dim Rx_count As Byte 'ischarwaiting variabel
Dim Rx_data As Byte 'Empfangenen Daten
Config Serialin = Buffered , Size = 10
Do
Rx_count = Ischarwaiting()
If Rx_count > 0 Then
Rx_data = Inkey()
Select Case Rx_data
Case 70
Print "Habe 70 erhalten."
Case 80
Print "Habe 80 erhalten."
End Select
End If
Loop
End
Hi Leute
ich hab jetzt mal beide Proggies (das von chr-mt und von Getaco) ausprobiert.
Wenn ich im Bascom Terminal "Send ASCII Character" anklicke und dann 70 oder 80 eintippe, sehe ich an der M101 Station duch das blinken der LED, dass was gesendet wird und kurz darauf wieder ein Aufleuchten... Leider wird im Terminal nix angezeigt!
Heißt das Blinken das es theoretisch funzt?!?
MFG!