Frage Deutsch
~~~~~~~~~~~~~
Gibt es eine Möglichkeit, aus QB heraus über die seriellen Ports COM 1 und
COM 2
mit einer Baudrate von 115200 Bits/s zu kommunizieren?
Question English
~~~~~~~~~~~~~
How can a use Baud rates up to 115200 Bits/sec with the serial ports COM 1
and COM 2?
Antwort 1
~~~~~~~~
[ von Frank Steinberg ( f-steinberg*nexgo.de ) im QB-Forum
2001 ]
.
Von Haus aus unterstützt QBasic nur die seriellen Schnittstellen COM1 und
COM2. Dabei sind jeweils nur Baudraten bis 19200 Baud (1 Baud = 1 Bit/sec)
möglich. Laut Online-Hilfe sind zwar nur Baudraten bis 9600 möglich, aber auch
19200 Baud funktionieren laut Michael Frey ebenfalls problemlos.
Auf meiner Homepage "Neue Aufgaben für alte Computer" ( www.FrankSteinberg.de ) beschreibe ich dafür die folgende Methode:
Zuerst öffnet man die Schnittstelle wie gewohnt mit OPEN "COM1, .... Die
Baudrate ist beliebig.
Danach sind vier Zeilen Code zusätzlich erforderlich:
OUT &H3FB, INP (&H3FB) OR 128
OUT &H3F8, 1
OUT &H3F9, 0
OUT &H3FB, INP (&H3FB) AND 127
Was passiert?
Zeile 1:
Die Basisadresse von COM1 ist &H3F8. An Offset 3 (&H3F8 + 3 =
&H3FB) liegt das Leitungs-Steuer-Register. Da setzen wir Bit 7 (Wert 128)
auf 1. Damit können die Register an Offset 0 und 1 für die Bestimmung der
Baudrate verwendet werden.
Zeile 2 + 3:
Die Baudrate wird in Teilen von 115200 bestimmt. Für 75 Baud z.B. müssen wir
einen Teiler von 1536 eingeben und für 115200 Baud eben 1. Der Teiler ist in
zwei Bytes zu trennen. Der niederwertige muss an Offset 0, der höherwertige an
Offset 1. Haben wir mit OPEN COM... eine Baudrate ab 600 aufwärts eingegeben,
kann Zeile 3 auch weggelassen werden, da dort schon 0 drinstehen muss.
Zeile 4:
Bit 7 wieder löschen. Damit werden die Register für ihren ursprünglichen
Zweck frei.
Für COM 2 ändert man alle OUT-Anweisungen für eine Basisadresse von
&H2F8.
Antwort 2
~~~~~~~~
[ von Thomas Antoni, 19.6.2002 ]
.
Verwende PowerBasic. Diese Programmiersprache unterstützt von Haus aus die
seriellen Ports 1 - 4 mit Baudraten bis zu 115000 Bd.
[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]