 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Julius
Anmeldungsdatum: 20.02.2006 Beiträge: 3 Wohnort: Ludwigsburg
|
Verfasst am: 20.02.2006, 09:38 Titel: COM-Befehl |
|
|
Hallo,
ich habe ein kleines oder größeres Problem. Ich möchte mit QBasic "einfach nur" auf den Comport schreiben und das aus der DOS-Box unter W2K SP4.
Mit den Skilltronics Comporttest wird der Port erkannt, aber mit dem Open
"COM1..." ... im Qbasic kommt nichts raus.
Das andere Problem was ich habe ist, das die Hardtware die Ich ansprechen möchte die COM-Parameter Baud
rate9600 data bit, 8 ,StopBit 1, Parity EVEN und Kontroll None hat.
Die OPEN "Com.." Anweisung läßt aber nur 7 Bit bei parity Even zu.
Brauch ich für W2K irgendwelche Treiber? Und wie spricht man den an. |
|
Nach oben |
|
 |
Heizi

Anmeldungsdatum: 19.01.2005 Beiträge: 309
|
Verfasst am: 20.02.2006, 10:23 Titel: |
|
|
also da kann ich dir auch nicht helfen, nur ein kleiner Tipp von Heizi.
DosBox ist ja ein Emulator. Vielleicht unterstützt der den Com
Port nicht oder nur ein bisschen. Da würde ich mal schaun ob das
mit Freebasic irgenwie geht, hab aber keine Ahnung, vielleicht
weiß das sonst wer. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2006, 12:56 Titel: |
|
|
Ich glaube, mit der DOS-Box ist die Eingabeaufforderung von W2k gemeint.
Ich hab' hier mal einen Teil aus dem QB-Kochbuch von qbasic.de herauskopiert. Eventuell hilft dir das.
QB-Kochbuch hat Folgendes geschrieben: |
***************************************************************** zum Inhalt ***
* Serielle Schnittstellen {11/375}
********************************************************************************
- OPEN "COM<Nr%>: <Option1> <Option2> ..." AS #<Dateinr>
oder
OPEN "COM<Nr%>: <Optionen>" FOR <Modus> AS #<Dateinr> LEN =<Länge> - Serielle
Schnittstelle als Datei <Dateinr> öffnen mit den folgenden Optionen (siehe
auch Kapitel 'Dateibearbeitung...'):
- 75|110|150|300|600|1200|2400|4800|9600|19200 - Bitrate in Bits/s (Baud)
19200 Bits/s ist auch machbar, obwohl in der QBasic-Hilfe nicht
dokumentiert.
- ,{N|E|O} - kein|gerades|ungerades Paritätsbit (None|Equal|Odd Parity)
- ,{4|5|6|7|8}- Anzahl der Datenbits ( Paritätsbit nicht mitgezählt;
Vorbesetzung=7)
- ,{1|1.5|2} - Anzahl der Stop-Bits (Vorbesetzung=1)
- ,{ASC|BIN} - Öffnen für ASCII- | binäre Datenübertragung
- ,CD <AnzMillisec> - Wartezeit in Millisec für Steuersignal DCD (Data
Carrier Detect) zur Erkennung der Verbindungsaufnahme.
- ,CS <AnzMillisec> - Wartezeit in Millisec für Steuersignal CTS (Clear
To Send) zum Signalisieren der Sendebereitschaft.
- ,OP <AnzMillisec> - Wartezeit in Millisec für 'Open Com', bis die Ver-
bindung hergestellt ist.
- ,LF - zusätzlicher Zeilenvorschub <LF> (=Linefeed = CHR$(10)) nach
Wagenrücklauf <CR> (= Carriage Return = CHR$(13)) senden.
- ,{RB|TB} <AnzBytes%> - Größe des Empfangs- | Sendepuffers in Bytes
festlegen (typisch z.B. 2048 Bytes)
- ,RS - Signal von der RTS-Leitung (Request to Send) unterdrücken (dient
zur Sendeanfrage)
Beispiel für 'normale Konfiguration':
OPEN "COM2: 300,N,8,1, CD0,CS0,DS0,OP0, RS,TB2048,RB2048" FOR RANDOM AS #1
- Serial Port 2 öffnen mit 300 Baud, ohne Parity-Bit, mit 8 Datenbits und
einem Stop-Bit, ohne Wartezeiten und Handshake, je 2048 Bytes für
Sende- und Empfangspuffer.
Hinweis: Das Kommunikationsprogramm muss zuerst auf dem Empfänger-PC,
dann auf dem Sender-PC gestartet werden!
- LOC <Dateinr%> - Funktion, die die Nummer des Datensatzes zurückliefert, der
gerade gesendet oder empfangen wird; bei binären Dateien die Nummer des
aktuellen Bytes. Ist noch nichts empfangen, so liefert LOC eine '0' zurück.
- ON COM (<Nr%> GOSUB <Marke> - Ereignisgesteuertes Anspringen einer lokalen
Subroutine, wenn ein neues Zeichen empfangen wurde.
- COM {ON|OFF|STOP} - Ereignisverfolgung für serielle Schnittstelle aktivieren |
deaktivieren | unterbrechen mit Speicherung
- WIDTH COM <Nr>: , <Spaltenzahl%> - legt die Länge von Text-Ausgabezeilen fest
{11/464}
- LOF - liefert die Anzahl der freien Bytes im Sendepuffer zurück
PowerBASIC unterstützt auch die Ports COM3 und COM4 sowie höhere Bauraten bis
zu 115000 Bits/s.
Wenn Sie über die serielle Schnittstelle externe Hardware wie LEDs, Relais,
Schrittmotoren usw. ansteuern wollen, so erhalten Sie alle wichtigen
Informationen auf den Webseiten www.FrankSteinberg.de und
www.skilltronics.de.
|
_________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Julius
Anmeldungsdatum: 20.02.2006 Beiträge: 3 Wohnort: Ludwigsburg
|
Verfasst am: 20.02.2006, 15:39 Titel: |
|
|
Danke für euere Antworten. Klar ich meine die EINGABEAUFFORDERUNG
Ich habe die Einstellung aus dem Kochbuch schon ausprobiert und auch schon das COM-Testprogramm von Skilltronics. Mit dem Testprogramm wird die Schnittstelle erkannt. Allerdings denke ich, dass der Zugriff auf die Schnittstelle anders vorgenommen wird als bei der COM-Anweisung.
Die Einstellung mit 8 Datenbit und Parity Even wird bei der COM-Anweisung in QBasic direkt an gemekert. |
|
Nach oben |
|
 |
Steini63
Anmeldungsdatum: 11.11.2004 Beiträge: 28 Wohnort: 30926 Seelze
|
Verfasst am: 21.02.2006, 22:41 Titel: Register direkt beschreiben. |
|
|
Hallo Julius!
Genau das Problem hatte ich auch mal. QBasic lässt diese Kombination nicht zu. Frag mich nicht warum. Ich habe es so gelöst:
Code: | OPEN "COM1:9600,,,,CD,CS,DS,RS" FOR RANDOM AS #1
OUT &H3F8 + 3, 27 'gerade Paritaet, 8 Datenbits, 1 Stoppbit
|
Für COM2 wäre &H2F8+3 (bzw. &H2FB) als Portadresse erforderlich.
Nach dem Öffnen der Schnittstelle wird das Leitungs-Kontroll-Register direkt mit dem erforderlichen Wert überschrieben. Was die einzelnen Bits bedeuten steht hier: www.FrankSteinberg.de/async.htm#15.7 _________________ Viele Grüße Steini
http://www.FrankSteinberg.de +++++++ Planung ist das Ersetzen des Zufalls durch den Irrtum +++++++ |
|
Nach oben |
|
 |
Julius
Anmeldungsdatum: 20.02.2006 Beiträge: 3 Wohnort: Ludwigsburg
|
Verfasst am: 22.02.2006, 08:30 Titel: |
|
|
Hi Steini63,
Danke.
Der Tipp hört sich gut an. Ich werde dieses mal Testen, wobei ich noch nicht weis ob das auch unter W2K SP4 klappt. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|