Now, i set A-G as 0 or clr in the program and they turn on, and 1 turns them off [see the code]
now all was working fine until i decided to put a proc in for turning the power on and off in the operations.
so before i was saying
power on
open 1
close 1
power off
now i am trying to type
open 1
close 1
and in the stat of each proc called ive put another proc at the start for power on, and one at the end for power off. It dosnt work, and i cant work out why. i think its to do with the first part not the adding of the power on and power off procs.
sorry for A> my bad explanation and B> for the lamer code!
thanks
Code: Select all
REM WINDOW PROGRAM
REM Initialise GPIO:
INSTALL @lib$ + "gpiolib"
GPIO% = FN_gpio_setup
REM Pin numbers to activate, in sequence:
DATA 14, 15, 18, 23, 24, 25, 8
REM Set to input first:
RESTORE
FOR I% = 1 TO 7
READ pin%
PROC_gpio_inp(GPIO%, pin%)
NEXT
REM Set pins to output:
RESTORE
FOR I% = 1 TO 7
READ pin%
PROC_gpio_out(GPIO%, pin%)
NEXT
REM RESET
PROCZEROSTART
PROCPINS
MODE 4
REPEAT
INPUT "STATE ACTION...",Z$
IF Z$="POWER ON" THEN PROCPOWERON
IF Z$="POWER OFF" THEN PROCPOWEROFF
IF Z$="OPEN 1" THEN PROCOPEN1
IF Z$="OPEN 2" THEN PROCOPEN2
IF Z$="FAN 1 ON" THEN PROCFAN1ON
IF Z$="FAN 2 ON" THEN PROCFAN2ON
IF Z$="FAN 1 OFF" THEN PROCFAN1OFF
IF Z$="FAN 2 OFF" THEN PROCFAN2OFF
IF Z$="CLOSE 1" THEN PROCCLOSE1
IF Z$="CLOSE 2" THEN PROCCLOSE2
IF Z$="ALL OFF" THEN PROCZEROSTART
IF Z$="CLOSE BOTH" THEN PROCCLOSEBOTH
IF Z$="BOTH FANS ON" THEN PROCBOTHFANSON
IF Z$="BOTH FANS OFF" THEN PROCBOTHFANSOFF
PROCPINS
CLS
PRINT A;B;C;D;E;F;G
PRINT Z$
UNTIL FALSE
REM SET THE PIN OUTPUTS
DEF PROCPINS
IF A=1 THEN PROC_gpio_set(GPIO%, 2^14)
IF A=0 THEN PROC_gpio_clr(GPIO%, 2^14)
IF B=1 THEN PROC_gpio_set(GPIO%, 2^15)
IF B=0 THEN PROC_gpio_clr(GPIO%, 2^15)
IF C=1 THEN PROC_gpio_set(GPIO%, 2^18)
IF C=0 THEN PROC_gpio_clr(GPIO%, 2^18)
IF D=1 THEN PROC_gpio_set(GPIO%, 2^23)
IF D=0 THEN PROC_gpio_clr(GPIO%, 2^23)
IF E=1 THEN PROC_gpio_set(GPIO%, 2^24)
IF E=0 THEN PROC_gpio_clr(GPIO%, 2^24)
IF F=1 THEN PROC_gpio_set(GPIO%, 2^25)
IF F=0 THEN PROC_gpio_clr(GPIO%, 2^25)
IF G=1 THEN PROC_gpio_set(GPIO%, 2^8)
IF G=0 THEN PROC_gpio_clr(GPIO%, 2^8)
ENDPROC
REM RESET ALL
DEF PROCZEROSTART
A=1
B=1
C=1
D=1
E=1
F=1
G=1
Z$=""
ENDPROC
DEF PROCPOWERON
G=0
PROCPINS
ENDPROC
DEF PROCPOWEROFF
G=1
PROCPINS
ENDPROC
DEF PROCOPEN1
PROCPOWERON
PROCCLOSE1
E=0
F=0
PROCPINS
WAIT 280
E=1
F=1
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCCLOSE1
PROCPOWERON
PROCFAN1OFF
E=1
F=0
PROCPINS
WAIT 500
E=1
F=1
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCOPEN2
PROCPOWERON
PROCCLOSE2
A=0
B=0
PROCPINS
WAIT 300
A=1
B=1
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCCLOSE2
PROCPOWERON
PROCFAN2OFF
A=1
B=0
PROCPINS
WAIT 500
A=1
B=1
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCFAN1ON
PROCPOWERON
PROCOPEN1
C=0
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCFAN2ON
PROCPOWERON
PROCOPEN2
D=0
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCFAN1OFF
PROCPOWERON
C=1
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCFAN2OFF
PROCPOWERON
D=1
PROCPINS
PROCPOWEROFF
ENDPROC
DEF PROCCLOSEBOTH
PROCPOWERON
PROCCLOSE1
PROCCLOSE2
PROCPOWEROFF
ENDPROC
DEF PROCBOTHFANSON
PROCPOWERON
PROCFAN1ON
PROCFAN2ON
PROCPOWEROFF
ENDPROC
DEF PROCBOTHFANSOFF
PROCPOWERON
PROCFAN1OFF
PROCFAN2OFF
PROCPOWEROFF
ENDPROC
END