Heh, never even thought about SELECT CASE
So something more like this then.
Code:' Configure the pic @ device pic12F675, INTRC_OSC_NOCLKOUT, WDT_ON, PWRT_ON, MCLR_OFF, BOD_ON, CPD_OFF, PROTECT_OFF N9600 con 6 CMCON = 7 ANSEL = 0 Relay1 VAR GPIO.5 Relay2 VAR GPIO.4 SlavePower VAR GPIO.2 SlaveRelay1 VAR GPIO.0 SlaveRelay2 VAR GPIO.1 Serial VAR GPIO.3 B0 var BYTE SlaveState VAR BYTE WhichRelay VAR BYTE INPUT SlaveRelay1 INPUT SlaveRelay2 INPUT Serial OUTPUT Relay1 OUTPUT Relay2 OUTPUT SlavePower restart: SlaveState = 0 PAUSEUS 1000 HIGH SlavePower main: B0 = 0 pauseus 1 SERIN Serial, N9600, 10, main, [1], B0 IF B0 > 1 THEN LOW SlavePower if B0 == 2 THEN GOSUB subUp IF B0 == 3 THEN GOSUB subDown IF B0 == 4 THEN GOSUB subStop IF B0 > 1 THEN GOTO restart WhichRelay = GPIO & 3 IF SlaveState <> WhichRelay THEN SlaveState = WhichRelay SELECT CASE WhichRelay CASE 0 GOSUB subStop CASE 1 GOSUB SubUp Case 2 GOSUB subDown END SELECT ENDIF goto main subUp: LOW Relay2 HIGH Relay1 RETURN subDown: LOW RELAY1 HIGH Relay2 RETURN subStop: LOW Relay1 LOW Relay2 RETURN




Bookmarks