mannyk
Anmeldungsdatum: 31.01.2006 Beiträge: 2
|
Verfasst am: 31.01.2006, 02:54 Titel: Seriellen Port ansteuern |
|
|
Hi!
Erstmal ein Hallo an Alle
Ich habe eine Relaiskarte (von Conrad), die ich gerne per QBasic steuern möchte. Ein Beispiel-Script habe ich der Dokumentation entnommen.
Da ich mich mit qbasic noch nicht wirklich gut auskenne, wollte ich fragen, ob mir jemand helfen kann das Programm so zu verändern, damit ich zb. das 1. Relais schalten kann. Bis jetzt steht nämlich immer nur "Transmitted:" und einige veränderliche Zahlen dort.
So kann man die Relais anscheinend ansprechen:
Hier noch der Code:
Code: |
CLS : CLEAR
DIM inbuf(800)
DIM outbuf(8)
OPEN "com2:19200,n,8,1,bin,cs,ds" FOR RANDOM AS #1
'--- INTERRUPT SERIAL INTERFACE ON ---
COM(2) ON
ON ERROR GOTO BADCOM
ON COM(2) GOSUB GETFRAME
'--- INITIALIZE RELAIS BOARD ---
PRINT "INITIALIZE BOARD"
outbuf(0) = 1: outbuf(1) = 1: outbuf(2) = 0: GOSUB sendframe
FOR delay = 1 TO 1000000: NEXT: CLS
'--- SWITCH RELAIS ---
teststart:
r = 1
rt:
outbuf(0) = 3: outbuf(1) = 1: outbuf(2) = r: GOSUB sendframe
FOR delay = 1 TO 1000000: NEXT: CLS
r = r * 2: IF r < 256 THEN GOTO rt
GOTO teststart
'|||||||||||| SERIAL COMMUNICATION |||||||||||
'-----------------------------
'--- READ 4 BYTE DATAFRAME ---
'-----------------------------
GETFRAME:
inbuf(bz) = ASC(INPUT$(1, #1))
bz = bz + 1
IF bz = 4 THEN GOTO checkframe
RETURN
'--- CHECK VALIDITY ---
checkframe:
ERROR$ = "ERROR"
IF inbuf(0) XOR inbuf(1) XOR inbuf(2) = inbuf(3) THEN ERROR$ = "OK"
bz = 0: PRINT "RECEIVED:"; " "; inbuf(0); " "; inbuf(1); " "; inbuf(2); " "; inbuf(3); " "; ERROR$
PRINT "-------------------------------------------": RETURN
'-----------------------------
'-----------------------------
'--- SEND 4 BYTE DATAFRAME ---
'-----------------------------
sendframe:
outbuf(3) = outbuf(0) XOR outbuf(1) XOR outbuf(2)
send$ = CHR$(outbuf(0)) + CHR$(outbuf(1)) + CHR$(outbuf(2)) + CHR$(outbuf(3))
PRINT #1, send$
PRINT "TRANSMITTED:"; " "; outbuf(0); " "; outbuf(1); " "; outbuf(2); " "; outbuf(3)
RETURN
'***************** ERROR HANDLER ***************
BADCOM:
PRINT "--- DATA ERROR ---"
RESUME
RETURN
ende:
END
|
Danke für etwaige Hilfe!
mfg,
mannyk |
|