Main:
apasat=0
adcvalue=0
    GOSUB ReadButton
    IF b_level > 0 THEN
    	cnt = 0
        WHILE b_level > 0  
    	   cnt = cnt + 10  
    	   if cnt > Long_Press THEN
		      actiune = 1
		      EXIT
	   endif
    	   PAUSE 5
    	   GOSUB ReadButton
    	WEND  
    b_level = 0
    if b_act = 1 then gosub comenzi  ; if button pressed is OK, no error
    ENDIF
Goto Main	
ReadButton:
    ADCON0.1 = 1
    While ADCON0.1 = 1 : Wend 
	
    DataW.HighByte = ADRESH 
    DataW.LowByte = ADRESL
           	b_level = 0
                actiune = 0
	IF DataW < 805 then
        	if DataW > 50  AND DataW < 160 THEN b_level = 1
        	if DataW > 180 AND DataW < 270 THEN b_level = 2
        	if DataW > 290 AND DataW < 380 THEN b_level = 3
        	if DataW > 400 AND DataW < 500 THEN b_level = 4
        	if DataW > 540 AND DataW < 650 THEN b_level = 5
        	if DataW > 690 AND DataW < 800 THEN b_level = 6
                       
        	apasat = b_level
        	adcvalue=DataW 
            
        if apasat=last_b_level then              ; procedure for cheking pressed button   
           b_cnt=b_cnt+1
           pauseus 200
           if b_cnt > 10 then b_act = 1          ; button pressed is OK
        endif
  
        last_b_level=apasat  
	ENDIF
RETURN
;=================================================  ===========================
comenzi:
SEROUT GPIO.2, 2, ["You pressed button ", #apasat, " for ", #cnt, "  ms", "   ACTIUNE:  ", #actiune, " ok ? ", #b_act, 13, 10]
;IF b_level=1 THEN gosub comand1
;IF b_level=2 THEN gosub comand2
;IF b_level=3 THEN gosub comand3
;IF b_level=4 THEN 
;  if actiune = 1 then 
;  gosub comand1
;  else
;  gosub comand 4
;  endif
;ENDIF     
;IF b_level=5 THEN gosub comand5      
;IF b_level=6 THEN gosub comand6 
last_b_level=0
b_cnt=0   
Return
			
		
 
	
Bookmarks