No it does not.
It does not do "do not repeat action until user releases and pushes key again"
No it does not.
It does not do "do not repeat action until user releases and pushes key again"
Something like that then?Code:if !flag then adcin 1, adcval 'read keys SELECT CASE adcval CASE < 10 : left=left+1:flag=1 'detect button presses CASE < 100 @ NOP CASE < 130 : right=right+1 :flag=1'detect button presses END SELECT endif
Ioannis
Last edited by Ioannis; - 7th January 2022 at 20:40.
Yes and we again will have extra "left" and "right" variables, one per each button - what I wanted to avoid![]()
maybe I am a bit slow.. But how you can have 40 buttons but not 40 variables to distinct between them?
Ioannis
ADCIN X,ADVAL
IF ADVAL=20 then Gosub Y1
IF ADVAL=10 then GOSUB Y2
IF ADVAL=30 then GOSUB Y3
and so on.
So at any given moment you will not know which button was hit and will have to scan again.
But even so, a flag for each button pressed is needed to keep it from regarding it as new press.
Ioannis
Regarding flags, here is a trick I use:
This creates bit flags. To use them:Code:ButtonA VAR WORD Button1 VAR ButtonA.0 Button2 VAR ButtonA.1 ...... Button16 VAR ButtonA.15
Code:Button4 = PORTC.3
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