I would just poll the inputs in a fixed-time based interrupt routine. For normal manual rotation you'd have no trouble keeping up. Assume the two inputs are called A and B. We have a value called and 'SaveB' On each interrupt: if B <> SaveB then if A is high then increment the controlled value else decrement the controlled value Set B to SaveB endif It is really that simple. Bob Ammerman RAm Systems -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads