Re: My code for ADC button handling, it works, but can it be slimmed down?
its a fairly simple process , 10 bits per button is easy , 8 bits with a bit of effort
providing the button check is called in a loop at a relatively consistent rate.
the program structure matters , spaghetti code won't get good results
sudo method
Code:
b1cnt var byte
newb1 var bit
b1dun var bit
b2cnt var byte
newb2 var bit
b2dun var bit
osc=8
t1con=$01;32mS
main
if pir1.0
pir1.0=0
gosub getkey
if newb1 gosub dob1
if newb2 gosub dob2
endif
goto main
getkey:
read adc
b1cnt = b1cnt<<1
b2cnt = b2cnt<<1
if adc in b1 range
b1cnt = b1cnt+1
elseif if adc in b2 range
b2cnt = b2cnt+1
endif
if !b1dun
if b1cnt=255 then newb1=1 ;32*8mS
else
if b1cnt=0 then b1dun=0
endif
if !b2dun
if b2cnt=255 then newb2=1
else
if b2cnt=0 then b2dun=0
endif
return
dob1:
b1dun=1
newb1=0
do b1 stuff
return
dob2:
b2dun=1
newb1=0
do b2 stuff
return
Warning I'm not a teacher
Bookmarks