Guten Morgen!
Seriell empfangen mit Handshake geht in Bascom ja prima. (Config Serialin).
Mein Problem ist die Senderichtung: Ich benötige für ein langsames Display die Möglichkeit, die CTS-Leitung des Displays abzufragen, und den seriellen Datenstrom, wenn CTS=1, zu pausieren.
Ich habe mir jetzt Config Serialout eingerichtet, in der Hoffnung, in der von der gepufferten Senderoutine benutzen Unterroutine _CheckSendChar die CTS - Leitung abfragen zu können. Leider wird diese Routine scheinbar nicht angesprungen - meine rüde Wartezeit von einer Sekunde wird nicht berücksichtigt ...
Weiss jemand vielleicht eine Lösung, oder einen anderen Weg, seriell mit Handshake senden zu können?
Herzliche Grüße
Snafu
Code:$crystal = 20000000 $regfile = "m168def.dat" $baud = 38400 Config Serialout = Buffered , Size = 254 Enable Interrupts Dim Loops As Word Print Chr(170) ; "CG=" 'go to terminal mode Print Chr(27) ; "[2J"; 'clear display Waitms 100 Do Print Chr(27) ; "[2J"; Print "The quick brown Fox jumps over the Lazy dogs back" ; Chr(13); Waitms 30 Print "1234567890";chr(13); Print "ÖÄÜßöäü" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print Loops; Incr Loops Waitms 1000 Loop _checksendchar: Wait 1 reti
Geändert von snafu (19.08.2012 um 15:21 Uhr)
Ich habe einen Tip vom Bascom Programmierer bekommen:
Man muss einen buffered INPUT definieren, dort gibt es auch einen Pin für CTS. Den Eingang lässt man einfach brach liegen, und dann klappt es mit dem CTS beim Senden.
Puh! Nicht so extrem logisch, aber jetzt gehts!
schönen Tag
snafu.
Code:ystal = 20000000 $regfile = "m168def.dat" $baud = 38400 Config Serialout = Buffered , Size = 100 Config Serialin = Buffered , Size = 5 , Bytematch = None , Cts = Pind.2 , Rts = Pind.3 , Threshold_full = 3 , Threshold_empty = 2 Enable Interrupts Dim Loops As Word 'Config Portd.2 = Input 'Cts Alias Pind.2 Print Print Chr(170) ; "CG=" 'go to terminal mode Print Chr(27) ; "[2J"; 'clear display Waitms 100 Print "reset" Do Print Chr(27) ; "[2J"; Print "The quick brown Fox jumps over the Lazy dogs back" ; Chr(13); Waitms 30 Print "1234567890" ; Chr(13); Print "ÖÄÜßöäü" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print "012345678901234567890123456789023456789" ; Chr(13); Print "---------------------------------------" ; Chr(13); Print Loops; Incr Loops Waitms 150 Loop
Lesezeichen