Erik, The way understand it now you need two signals: 1. A signal that occurs say 2500 times per revolution of the press; 2. A signal that occurs once per rev. To generate the first, use a tmr0 ISR that occurs whenever you need to change the output, ie. 5000 times per rev. for a 2500 pulse/rev encoder; To generate the second, use a 16 bit counter that you decrement from your ISR from a value of 2500 down to 0. When 0 is reached, change your 1 pulse per rev output and reset the counter. To set the press speed, modify the value of Tmr0 so that it rolls over after a different speed. To compensate for the roll getting thinner, do the same. To use different encoder ratio's, modify the value from which the 16 bit counter counts down and tmr0 reset value. What else was there? To modify the encoder ratio, modify Tmr0's reset value and the 16 bit counter value to represent the amount of pulses per rev. Sounds like lookup tables to me, especially considering the thinning roll... Have fun, hope that's clear and that I understood you correctly... Roland