Autor | Thema: Serielle Schnittstelle | | Datum:23.08.01 11:26 
(jung@interdomo.de) | |
Hallo
Ich habe ein Problem. Folgendes Programm
gibt laut Schnittstellenanalysator keine korrekte
Baudrate aus. DAs Programm ist eine direkte
Übersetzung eines funktioierenden C-Programms.
(insbesondere die outpb-Befehle)
declare taste$,message$
declare
com_sps%,com_error_sps%,com_handle%,com$,e%,i%,status%
declare tx$[15,1]
com_handle%=@OpenCom("COM1",2048,2048)
E_sps% = @SetCom"COM1:9600,N,8,1") com_error_sps% = @ComError(com_handle%)
if @NEQ(com_error_sps%,0) then
print "Fehler !!"
endif
outpb $3FC,3
print "Diemtic - TEST !!!!!!"
WhileNot taste$=@Chr$(27)
taste$=@Inkey$()
sleep 100
tx$[1,1] = @chr$(10)
tx$[2,1] = @chr$(16)
tx$[3,1] = @chr$(1)
tx$[4,1] = @chr$($CA)
tx$[5,1] = @chr$(0)
tx$[6,1] = @chr$(1)
tx$[7,1] = @chr$(2)
tx$[8,1] = @chr$(0)
tx$[9,1] = @chr$(0)
tx$[10,1] = @chr$($D4)
tx$[11,1] = @chr$($A)
tx$[12,1] = @chr$(0)
i% = 1
outpb $03FC,1
sleep 3
whileloop 12
e% = @inpb($03FD) ' Status abfragen
outpb $03FC,1 ' $03F8 + 4 , 1
locate 3,3
print bin$(e%)
print hex$(e%)
if @AND(e%,$20) then
outpb $3F8,tx$[i%,1]
add i%,1
endif
sleep 5
outpb $03F8 + 4,3 ' $03F8 + 4,3
wend
wend
outpb $03FC,1 ' $03F8+4,1
@closecom(com_handle%)
end
Kann es sein, das Windows 98 die Dten nicht
exakt mit den eingestellten Schnittstellenparametern überträgt ?
Detlef Jung
|
| | Datum:23.08.01 16:44 
(galaxy@mrk-soft.de) | |
Hallo Detlef !
Zum einem hat der OUTPB nichts mit OPENCOM
zu tun, da " Out " direkt Hardwaremässig
auf die Adresse schreibt bzw. liest, dazu
ist KEIN OpenCom nötig.
Dein Fehler wird ehr sein, das du mittels
OpenCOM die Serielle öffnest und dadurch
Blokierst, sodas du nicht mehr direkt mit
OUT oder IN aud diese zugreiffen kannst.
Versuch mal NUR das aus deinem code
outpb $3FC,3
print "Diemtic - TEST !!!!!!"
WhileNot taste$=@Chr$(27)
taste$=@Inkey$()
sleep 100
tx$[1,1] = @chr$(10)
tx$[2,1] = @chr$(16)
tx$[3,1] = @chr$(1)
tx$[4,1] = @chr$($CA)
tx$[5,1] = @chr$(0)
tx$[6,1] = @chr$(1)
tx$[7,1] = @chr$(2)
tx$[8,1] = @chr$(0)
tx$[9,1] = @chr$(0)
tx$[10,1] = @chr$($D4)
tx$[11,1] = @chr$($A)
tx$[12,1] = @chr$(0)
i% = 1
outpb $03FC,1
sleep 3
whileloop 12
e% = @inpb($03FD) ' Status abfragen
outpb $03FC,1 ' $03F8 + 4 , 1
locate 3,3
print bin$(e%)
print hex$(e%)
if @AND(e%,$20) then
outpb $3F8,tx$[i%,1]
add i%,1
endif
sleep 5
outpb $03F8 + 4,3 ' $03F8 + 4,3
wend
wend
outpb $03FC,1 ' $03F8+4,1
|
| | Datum: 09.09.01 15:44 
(k.ebersbach@gmx.de) | |
Hi,
OutPB schreibt doch an die Parallelschnittstelle.
Wenn Du an die geöffnete (@OpenCom) und auf die richtige Baudrate eingestellte @SetCom("COM2:9600,N,8,1") serielle Schnittstelle etwas senden willst, benutze dazu die Funktion @WriteCom(N,S). Genaueres siehe Profan Referenz.
HTH+Greetings
Kai
|
|
|