 |
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 |
oldcoolman
Anmeldungsdatum: 05.06.2007 Beiträge: 11
|
Verfasst am: 09.12.2007, 13:35 Titel: falsche Baudrate |
|
|
Hallo nach sehr langem Suchen stelle ich mit dem oszi fest,
das FB mit nachfolgenden Code mit 115200 Baud sendet.
habt ihr ne Erklärung?
Code: | declare sub comput()
comput
end
SUB comput()
dim as UByte serout,x,y
dim as string *1 comstr
CLOSE
OPEN "COM1:19200,N,8,1,CS0,DS0,CD0,BIN" for binary AS #3
if err then print "Error Opening COM: " & err :sleep
for y= 0 to 254
serout=85
print y;" ";
put #3,1,serout
sleep 10
next
sleep 100
close
end sub |
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 09.12.2007, 14:20 Titel: |
|
|
Hi,
ich staune schon das du "COM1:19200,..." angeben kannst. Es soll doch nur 9600Baud möglich sein.
Wenn du y=0 bis 255 brauchst
Code: | dim y as ubyte
dim i as short
for i = 0 to 255
y= lobyte(i)
print y;" ";
next |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
atari gesperrt
Anmeldungsdatum: 26.08.2007 Beiträge: 144
|
Verfasst am: 09.12.2007, 14:42 Titel: |
|
|
Zitat: |
Es soll doch nur 9600Baud möglich sein.
|
das stimmt für freebasic nicht sondern nur für qbasic/quickbasic.
freebasic kann bis zu 115200baud.
man hat das hilfs-tut nicht richtig umgesetzt für freebasic.
das problem hatte ich auch.
habe mir dann dieses gebastelt :
Code: |
#INCLUDE ONCE "windows.bi"
#INCLUDE ONCE "fbgfx.bi"
SCREEN 19,16
DECLARE SUB open_com()
DECLARE SUB close_com()
DECLARE SUB Reset_DTR()
DECLARE SUB Set_RTS()
DECLARE SUB Reset_RTS()
DECLARE SUB ReadChar()
DECLARE SUB SendChar()
DIM SHARED dcb AS DCB
DIM SHARED hCom AS handle
DIM SHARED commPort AS STRING
DIM SHARED status AS INTEGER
DIM SHARED anzahl AS INTEGER
DIM SHARED wert AS INTEGER
DIM SHARED menge AS INTEGER
DIM SHARED teststring AS STRING
commport = "COM2"
open_com
SLEEP 100
DO
ReadChar
IF wert>32 THEN
teststring=teststring+CHR(wert)
SLEEP 5
END IF
LOOP UNTIL wert=13
close_Com
PRINT teststring
SLEEP
END
SUB ReadChar()
Anzahl = 0
Status = 0
menge=1
GetCommMask (hCom, @Status)
IF Status AND EV_RXCHAR = EV_RXCHAR THEN
ReadFile (hCom, @Wert, menge, @Anzahl, 0)
END IF
END SUB
SUB SendChar()
Anzahl = 0
Menge= 1
WriteFile (hCom, @Wert, Menge, @Anzahl, 0)
END SUB
SUB Reset_RTS()
Status = CLRRTS
EscapeCommFunction (hCom, Status)
END SUB
SUB Reset_DTR()
Status = CLRDTR
EscapeCommFunction (hCom, Status)
END SUB
SUB Set_RTS()
Status = SETRTS
EscapeCommFunction (hCom, Status)
END SUB
SUB close_Com()
CloseHandle(hCom)
END SUB
SUB open_com()
hCom = CreateFile( commPort,_
GENERIC_READ OR GENERIC_WRITE,_
0,_
NULL,_
OPEN_EXISTING,_
0,_
NULL )
Status = EV_CTS OR EV_DSR OR EV_RING OR EV_RLSD OR EV_RXCHAR
dcb.BaudRate = CBR_19200
dcb.ByteSize = 8
dcb.Parity = NOPARITY
dcb.StopBits = ONESTOPBIT
dcb.fBinary = True
dcb.Parity = False
dcb.fOutxCtsFlow = False
dcb.fOutxDsrFlow = False
dcb.fDtrControl = DTR_CONTROL_DISABLE
dcb.fDsrSensitivity = False
dcb.fTXContinueOnXoff = True
dcb.fOutX = False
dcb.fInX = False
dcb.ErrorChar = 0
dcb.fNull = False
dcb.fRtsControl = RTS_CONTROL_DISABLE
dcb.fAbortOnError = False
dcb.XonLim = 255
dcb.XoffLim = 255
dcb.XoffChar = 63
dcb.ErrorChar = 0
dcb.EofChar = 0
dcb.EvtChar = 0
IF SetCommState(hCom, @dcb) = 0 THEN
PRINT " ...ist nicht... ";GetLastError()
EXIT SUB
ENDIF
PRINT "Serieller Port ";commPort;" ist offen !"
END SUB
|
|
|
Nach oben |
|
 |
oldcoolman
Anmeldungsdatum: 05.06.2007 Beiträge: 11
|
Verfasst am: 09.12.2007, 14:48 Titel: falsche baudrate |
|
|
hallo nochmal,
das o to 255 tut nichts zur Sache,war nur testweise.
selbst im alten quickbasic konnte ich 19200 angeben. es funzte. aber nicht darüber.
ich hab das mit fb 0.16 prima am Laufen aber 0.18.x geht es nicht mehr und ich hab mir jetzt tagelang nen wolf gesucht bis ich mal die Augen bei meiner oszi timebase einstellung etwas weiter aufgemacht hab. mit hterm funzts ja auch. Durch den vergleich hterm freebasic bin ich auf den Fehler gekommen. es sind sicher 115200 und keine 19200.
was kann ich da tun? |
|
Nach oben |
|
 |
atari gesperrt
Anmeldungsdatum: 26.08.2007 Beiträge: 144
|
Verfasst am: 09.12.2007, 14:54 Titel: |
|
|
meinen vorschlag einbauen. oder altes freebasic nehmen.
Zitat: |
selbst im alten quickbasic konnte ich 19200 angeben.
|
aber nicht mehr...lol.... |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
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.
|
|