What happens if more than one button is pressed at the same time?
Anyway, this might serve as starting point. It compiles but it is not tested.Code:Long_Press CON 5000 Short_Press con 100 cnt VAR WORD b_level VAR BYTE DataW VAR WORD Main: GOSUB ReadButton IF b_level > 0 THEN cnt = 0 WHILE b_level > 0 cnt = cnt + 10 if cnt > Long_Press THEN EXIT PAUSE 10 GOSUB ReadButton WEND SEROUT GPIO.2, 2, ["You pressed button ", #b_level, " for ", #cnt, "ms", 13, 10] endif Goto Main ReadButton: ADCON0.1 = 1 While ADCON0.1 = 1 : Wend DataW.HighByte = ADRESH DataW.LowByte = ADRESL b_level = 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 ENDIF RETURN




Bookmarks