Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249476 (10912)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Serielle Schnittstelle
Detlef Jung
| 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
Thorsten.HG
| 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
Kai Ebersbach
| 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

| Zurück zur Übersicht