pic16f877a push button

Status
Not open for further replies.

namratha_r

Newbie level 3
Joined
Jan 23, 2015
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
25
Hi am working on pic16f877a . Have interfaced pushbutton with pic I need help in programming.
If once switch is pressed it should increment one value and i achieved doing this its working fine .
But, condition is if switch is press down and hold for some time it should fastely and smoothly increment value without flickering but in my code if i press down and hold it will be in same state . anybody has any idea about the logic please help me.
Am using XC8 complier.
 

Most keyboard processing routines are based on a timer tic, e.g. 15 to 30 Hz. The button state is read once per timer tic to determine (debounced) key state, state change and duration of key press. Any complex reaction, e.g. value up/down with acceleration can be well based on it.
 

If button is pressed down and held for some time value should increment fastly how can i write code for this logic ?
 

below is part of my code...




Code C - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while(1)
{
 
   if(RA4 == 1)                           // switch       
            {
                oldstate = 1;             // flag is set
            }
                if(oldstate &&(RA4 == 0))
                {
                    val++;
                    if(val > 10)
                    {
                        val = 1;
                    }
 
                    oldstate = 0;
            }
}

 

You have state change detection but no debouncing.

For repeat function there must a timer that determines how long a key is pressed.
 

Thanks for quick response ...
but how to add that in this loop i dont no.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…