{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Courier;}}
\viewkind4\uc1\pard\lang3081\f0\fs17 'b0 = standby current\tab\tab b3 = pins config for gain
\par 'b4 = adc reading\tab\tab b7 = "ON" threshhold\tab\tab b8 = "OFF" threshhold
\par 
\par 'bits 0 - 3 gain control\tab bit 4 slave relay\tab\tab bit 5  yellow/green leds \tab bit 6 slave led\tab\tab bit 7 discharge
\par \tab 
\par initialise:
\par 
\par \tab pins = %10001110\tab\tab\tab\tab\tab\tab 'set gain at lowest. Turn on yellow led
\par \tab pause 3000\tab\tab\tab\tab\tab\tab\tab 'wait until voltages stabilise
\par \tab readadc 0,b0
\par \tab if b0 > 225\tab then fail\tab\tab\tab\tab\tab 'standby current is too high
\par gaintest:
\par 
\par \tab b2 = 1\tab\tab\tab\tab\tab\tab\tab 
\par 
\par \tab for b1 = 1 to 4\tab\tab\tab\tab\tab\tab 'test standby current for optimum gain
\par 
\par \tab\tab b3 = 15 - b2\tab\tab\tab\tab\tab 'b3 has pin configuration for gain
\par \tab\tab pins = b3\tab\tab\tab\tab\tab\tab 'set gain
\par \tab\tab b2 = 2 * b2\tab\tab\tab\tab\tab\tab 
\par \tab\tab pause 1000\tab\tab\tab\tab\tab\tab 'wait for voltages to settle
\par \tab\tab readadc 0,b0\tab\tab\tab\tab\tab 'read standby current value
\par \tab\tab if b0 >= 20 then main\tab\tab\tab\tab 'usable standby reading was attained so exit
\par 
\par \tab next b1 \tab\tab\tab\tab\tab\tab\tab 'gain was insufficient so try next available
\par \tab 
\par maxgain:
\par 
\par \tab pins = 15\tab\tab\tab\tab\tab\tab\tab 'gain still insufficient so try max gain
\par \tab pause 1000
\par \tab readadc 0,b0\tab\tab\tab\tab\tab\tab 'get latest standby current value
\par 
\par main:
\par 
\par \tab 'on arriving here the gain has been optimally set. b0 contains the standby current value
\par 
\par \tab high 5\tab\tab\tab\tab\tab\tab\tab 'change led to green
\par 
\par \tab b7 = b0 + 20\tab\tab\tab\tab\tab\tab 'set threshhold level for "ON" condition
\par \tab\tab 
\par loop1:\tab\tab\tab\tab\tab\tab\tab\tab 'loop here until master device is turned on
\par \tab 
\par \tab readadc 0,b4
\par \tab if b4 > b7 then main2\tab\tab\tab\tab\tab 'master device has been turned on. jump to on routine
\par \tab b7 = b4 + 20\tab\tab\tab\tab\tab\tab 'update "ON" threshhold
\par \tab pause 3000
\par \tab goto loop1
\par \tab\tab 
\par 
\par main2:
\par 
\par \tab high 4\tab\tab\tab\tab\tab\tab\tab 'turn on slave relay
\par \tab high 6\tab\tab\tab\tab\tab\tab\tab 'turn on red led\tab\tab\tab\tab\tab\tab\tab 
\par \tab pause 3000
\par \tab readadc 0,b5\tab\tab\tab\tab\tab\tab 'read ON current
\par \tab b8 = b5 - 20\tab\tab\tab\tab\tab\tab 'set OFF threshhold
\par 
\par loop2:\tab 'on arriving here the master has been switced on with b5 holding the value of the ON current
\par 
\par \tab readadc 0,b4\tab\tab\tab\tab\tab\tab 'get latest current value
\par \tab if b4 < b8 then\tab\tab\tab\tab\tab\tab 'master device has been turned off
\par \tab\tab low 4\tab\tab\tab\tab\tab\tab\tab 'turn off relay
\par \tab\tab low 6\tab\tab\tab\tab\tab\tab\tab 'turn off red led
\par \tab\tab high 7\tab\tab\tab\tab\tab\tab 'discharge C6
\par \tab\tab pause 1000
\par \tab\tab low 7
\par \tab\tab pause 3000
\par \tab\tab goto loop1
\par \tab endif
\par \tab b8 = b4 - 20\tab\tab\tab\tab\tab\tab 'update OFF threshhold
\par \tab pause 3000
\par \tab goto loop2 
\par 
\par 
\par fail:\tab\tab\tab\tab\tab\tab\tab\tab\tab 'standby current too large
\par 
\par \tab pins = 14
\par 
\par loop9:\tab\tab\tab\tab\tab\tab\tab\tab 'alternately flash leds to indicate fail
\par \tab toggle 5
\par \tab pause 500
\par \tab goto loop9
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par }
 