What I'm not seeing is a way to connect the 0-500 A/D reading to the 165uS rollover of the timer.
Setting one of the timers so that at max Z, it will rollover at 165uS, I can adjust that timer with the Z to slow it down and get the "gain", ie: increase the time it takes to rollover
Reading the A/D, I can tell whether it is above 528 or below 500 and set direction.
Each of the 4 possible 0-500 values signify the number of those rollovers that generate pulses out.
Does this snippet look plausible?
BoCode:IntCnt var word ADval var word[3] Holdoff var word[3] '**** Interrupt **************** IntCnt = IntCnt + 1 ADval[n]*12 = Holdoff[n] if IntCnt = Holdoff[n] then Pulse else NoPulse endif Pulse: Pin[n] low ' drive a step pulse active IntCnt = 0 ' clear count of interrupts pauseus 2 ' delay to meet minimum time for drive Pin[n] high ' return the pulse to inactive return ' NoPulse: return ' go back without sending a pulse




Bookmarks