--=====================_1790279500==_ Content-Type: text/plain; charset="us-ascii"; format=flowed At 07:54 PM 9/5/2009, you wrote: Josh, the type of mechanical detented encoders you have are designed to reliably provide a single up/down event per detent. It is common in relative position sensing using optical encoders (eg. motor encoders or telescope angle sensing) to attempt to get four events per cycle-- that is not desirable in this case, so you should take that into account when looking at firmware that's out there. See the attached diagram-- at the detent position, the A signal is always high (switch open with pullup) and the B signal is indeterminate (this is done to relax manufacturing tolerances) Bounce can be as much as 5ms worst case. The way I get this to work in a rock-solid fashion is to poll the encoder pins at a few hundred Hz and look at the current and previous values of A & B after debouncing (the way I do it, that requires current and some previous values to debounce). After debouncing, there are 16 possibilities (4 bits) of which only two (0->1 on A) generate an up or down event. The others should be ignored in most cases.. assume here that A', B' are previous debounced values: A B A'B' Result & interpretation 0 0 0 0 0 currently between detents 0 0 0 1 0 " 0 0 1 0 0 " 0 0 1 1 0 " 0 1 0 0 0 " 0 1 0 1 0 " 0 1 1 0 0 " 0 1 1 1 0 " 1 0 0 0 +1 (CW) 1 0 0 1 0 two changed at once-- ignore 1 0 1 0 0 no change 1 0 1 1 0 B jittering at detent -- ignore 1 1 0 0 0 two changed at once -- ignore 1 1 0 1 -1 (CCW) 1 1 1 0 0 B jittering at detent -- ignore 1 1 1 1 0 no change Make sense? The results when two lines change at once are ignored because we assume the sampling was not fast enough to distinguish the results. That sets a maximum rotational rate for the encoder. Assume we get a new debounced sample pair every 5msec, then we can sample about one per 20msec, not taking tolerances into account, or ~80 RPM typically for 18 detents (maybe more like 60 or 70 RPM when you consider tolerances). That is adequate for a finger- twiddled knob. Best regards, Spehro Pefhany --"it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com --=====================_1790279500==_ Content-Type: application/octet-stream; name="encoder.gif" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="encoder.gif" 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 79/Bhxc/nnx58+fRp1e/nn179+/hx5fPKggAOw== --=====================_1790279500==_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist --=====================_1790279500==_--