Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

COM-Befehl

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Julius



Anmeldungsdatum: 20.02.2006
Beiträge: 3
Wohnort: Ludwigsburg

BeitragVerfasst am: 20.02.2006, 09:38    Titel: COM-Befehl Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 20.02.2006, 10:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.02.2006, 12:56    Titel: Antworten mit Zitat

Ich glaube, mit der DOS-Box ist die Eingabeaufforderung von W2k gemeint. zwinkern

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
Benutzer-Profile anzeigen Private Nachricht senden
Julius



Anmeldungsdatum: 20.02.2006
Beiträge: 3
Wohnort: Ludwigsburg

BeitragVerfasst am: 20.02.2006, 15:39    Titel: Antworten mit Zitat

Danke für euere Antworten. Klar ich meine die EINGABEAUFFORDERUNG mit dem Kopf durch die Mauer wollen
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
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Steini63



Anmeldungsdatum: 11.11.2004
Beiträge: 28
Wohnort: 30926 Seelze

BeitragVerfasst am: 21.02.2006, 22:41    Titel: Register direkt beschreiben. Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Julius



Anmeldungsdatum: 20.02.2006
Beiträge: 3
Wohnort: Ludwigsburg

BeitragVerfasst am: 22.02.2006, 08:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz