We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
whether the following debouncing logic will work well: the total cycle for code is 50ms and each function is executed only once during the cycle.
void main() { signed int deb_Counter=0; while(1) { input(); process(); output(); } } int debounce() { if(key_pressed) { deb_Counter++; } else { deb_Counter--; } if(deb_Counter>10) { deb_Counter=0; return(1); } else { deb_Counter=0; return(0); } }
this code is reffered from web with thanks, karthik
Ahhem ...
You've done nothing to fix 'deb_Counter'.
And a glaring logic error ...
In 'debounce' you check for deb_Counter being greater than 10.
If it is, you reset to zero. If it isn't, you reset to zero.
How would it ever manage to get anywhere near 10?
Maybe you should return to first principals before embarking on a task such as this.