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:

INPUT #1, b probleme mit dem port: com1

 
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
Willen



Anmeldungsdatum: 17.09.2004
Beiträge: 2
Wohnort: HAMBURG

BeitragVerfasst am: 17.09.2004, 18:16    Titel: INPUT #1, b probleme mit dem port: com1 Antworten mit Zitat

Hallo
habe ein Messgerät am Com1 hängen.
Nachdem ich den Port Com1 geöffnet und Daten zum
Gerät übertragen habe möchte ich jetzt gerne Daten mit INPUT #1, b auslesen jedoch hängt sich das Programm auf wenn keine Daten mehr vom Gerät kommen. Es bleibt dann beim Befehl INPUT hängen und wartet anscheinend auf Daten von der Schnittstelle.

Wie kann ich das Programm nach einer Zeit x weiterlaufen lassen od. abrechen?
Oder wie frage ich wie und ob Daten an der Schnittstelle com1 anliegen um immer erst dann lesen zu lassen wenn es sinn mach. Zunge rausstrecken

REM clear monitor and open com1
CLS
OPEN "COM1:9600,N,8,1,cs,ds" FOR RANDOM AS #1

PRINT "buffer start:", LOC(1)

REM instrument ID

send$ = "ID"
PRINT #1, CHR$(27) + send$ + CHR$(13) + CHR$(10)
FOR i = 1 TO 3
INPUT #1, read$
PRINT read$
PRINT "i:", i
PRINT "buffer read:", LOC(1)
NEXT i
CLOSE #1
END
_________________
gruss... daniel

...der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott. (Werner Heissenberg 1901-1976, Nobelpreisträger für Physik)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2459
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 17.09.2004, 19:12    Titel: Antworten mit Zitat

Siehe an dieser Stelle die beiden Artikel

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/EreignisSchleife.html

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/SerielleKommunikation.html

Was Du suchst, ist eine sog. Non-Blocking-I/O. Die bekommst Du auch mit Hilfe von LOC(). Beispiel:

Code:
WHILE INKEY$ = ""
  PRINT "Immer noch aktiv!"
  a%=LOC(1)
  IF a% > 0 THEN
     z$ = INPUT$(a%, 1)
     ' z$ verarbeiten
  END IF
WEND

_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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