On Tue, Jun 11, 2013 at 10:27 PM, Manu Abraham wro= te: > On Tue, Jun 11, 2013 at 9:09 PM, Joe Wronski = wrote: >> Since the enc_tab[] only contains -1,0,+1, the only explanation I can >> think of would be that you are actually getting 4x the number of >> interrupts that you think you are. Have you tried setting breakpoints >> in the interrupt or print_error_code() func to step through the code? >> Also, what happens when the count goes over 9 or less than 0? You only >> have 10 digits to print 16 possible values, and count is unsigned. > > Right, array returns 1, -1 or 0 only. Interrupt is fired 4 times for RBIF= , > PORTB change Interrupt. > > The display can show 0-9, so after a reset/powerup, it starts with 0. :-) > > I guess, I understand what's happening. Ditched the array, looking directly at the mechanical states. Retained the small debouncing counter, It feels better turning the knob wit= h this debouncing in there. Simplified the code to look thus: http://goo.gl/sjrlF Thanks to all the people, who helped to helped to shoot this bug down. :-) Hope the code snippet will be useful to someone, trodding this path again. Thanks, Manu --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .