|
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 |
[p]2
Anmeldungsdatum: 20.10.2006 Beiträge: 1
|
Verfasst am: 20.10.2006, 03:49 Titel: Der gute alte COM-Port |
|
|
Hallo Profis.
Ich habe mich entschieden ein Oszilloskop ueber den COM-Port anzusteuern, um einen einzigen Wert auszulesen. Hierfuer muessen natuerlich erst mal ein paar Settings gemacht werden, und danach moechte ich gerne den Wert alle 5 sekunden abfragen. Das Grundgeruest, also der Timer funktioniert in freebasic, das alles ist kein Problem. Das schwierigste jedoch ist immer die kommunikation mit dem oszi. Nun, momentan bin ich soweit dass das oszi die befehle, die es ueber die schnittstelle bekommt empfaengt und auch richtig interpretiert.
Ist nun aber der Befehl eine Frage, zum Beispiel "Geraet wer bist du?" mit *IDN?, so sehe ich zwar dass das oszi etwas sendet, aber der string in basic bleibt leer.
Unter dem Standard windows terminal, kann ich empfangen und senden.
Habe es mit dem super terminal v1.9b von bray probiert. Dort habe ich folgende settings: COM1, 4800baud, databits8, Pnone, Stopbits1, Handshake none, settings CTS,DSR aktiviert. Mit diesem Terminal habe ich festgestellt, dass ich nur empfangen kann wenn das RTS laempchen an ist. Den ausgang RTS zu schalten im Algorithm mit (OUT 1020,3) nachdem ich gesendet habe, mag mein windows gar nicht.
Zum Oszi: es moechte als EndofInput ein Chr(13) haben, und als endofOutput moechte es "\n\r" .
Bin, da ich das forum nach allen com-beitraegen durchwuehlt habe, confused, weil die befehlsrefernz fuer open com nur fuer qbasic richtig sein soll.
Dieser Beitrag soll dazu dienen, eine Moeglichkeit zu suchen mit einfachen GNU mitteln ein sauteueres geraet zu steuern (verzicht auf labview, hpvee - klar die verbindung ist lahm, aber es soll nur gesteuert werden), und vielleicht die referenz fuer open com zu berichtigen.
Hier ist mal das fragment meines laecherlichen beitrags:
OPEN "COM1:4800,N,8,1,CS0,DS0" FOR RANDOM AS #1
answer$="no_"
Print #1, "*IDN?" + Chr$(13)
SLEEP 2000
Input #1, answer$
Print "-------"
Print answer$ +"answer"
close #1
Bitte um freundliche und genau erklaerung falls jemand hilfe weiss. Solange mach ich mit und meinem Problem weiter.
Greets |
|
Nach oben |
|
|
terminate
Anmeldungsdatum: 12.09.2006 Beiträge: 56
|
Verfasst am: 28.10.2006, 01:57 Titel: Re: Der gute alte COM-Port |
|
|
Eigentlich bin ich schon viel zu müde und schreib jetzt nur weil ich den Begriff COM PORT gelesen habe und ich bin auch sehr zuversichtlich, dass sich dein Problem lösen läßt, (nur nicht mehr heute).
Also ich würde erst mal von Print # und Input # weggehen und stattdessen put und get verwenden.
So in der Art:
Code: |
Dim As Integer com_port_handle
Dim As String buf_send_pat,buf_receive_pat
Dim read_char As String *1
com_port_handle=freefile
print "open com"
print
open com "COM1:4800,N,8,1,CS0,DS0" as #com_port_handle
print "send data"
print
buf_send_pat="*IDN?" + Chr$(13)
Put #com_port_handle,,buf_send_pat
print "wait"
print
SLEEP 2000
print "receive data"
print
Do Until Loc(com_port_handle) = Lof(com_port_handle)
Get #com_port_handle,,read_char
buf_receive_pat=buf_receive_pat+read_char
Loop
print "buf_receive_pat: " & buf_receive_pat
print
Close com_port_handle
print "any key to exit"
sleep
|
[p]2 hat Folgendes geschrieben: | ... Mit diesem Terminal habe ich festgestellt, dass ich nur empfangen kann wenn das RTS laempchen an ist. Den ausgang RTS zu schalten im Algorithm mit (OUT 1020,3) nachdem ich gesendet habe, mag mein windows gar nicht.
...
|
Das läßt sich auf jeden Fall (auch ohne OUT 1020,3), über die win32api lösen, falls es nur daran scheitern sollte. Hab mich vor kurzem für einen Test mal damit beschäftigt, (nein das steht in meinen Beispielen noch nicht drin, ich weiß aber dass es geht):
http://forum.qbasic.at/viewtopic.php?p=41419#41419
http://www.freebasic.net/forum/viewtopic.php?p=52202#52202
Probier einfach mal aus ob du jetzt etwas empfangen kannst. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
|
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.
|
|