im pretty sure that this is a fairly simple topic… but i cant figure it out.
What i am looking at is Kevin’s encoder code and trying to determine the interrupt routines i would need to measure a pulse width from the Gear Tooth Sensor. This is kind of important because i need to know direction, and looking at the specs for the GTS i can see that a CW tick has a pulse width of 45 us, and CCW has 90 us.
I know how i would detect a tick, but how would i detect the pulse width?
EDIT: some new realizations by me tell me that the PWM pins can be configured as inputs for measuring signals like this…
Use an interrupt pin that interrupts on both rising and falling edges and read a timer (like Timer 3) to measure time.
Hint: This problem is exactly the same as using an ultrasonic transducer… There have been a lot of code fragments posted about using that device in the past.
Forgive me if I’m telling you things you already know, but the 2006 GTS is not legal for use in competition this year. If you’re just doing this for your own purposes, what Mike Betts said is correct. You attach the GTS to an interrupt, and then use a software timer to measure the time between the rising and falling edges of the pulses.
Well, I have good news and I have bad news. Being a glass half-full kinda guy, good news first: I wrote some code last year to do exactly what you describe. Here’s a link: http://kevin.org/frc/gts.zip. The bad news is that capturing both edges of the shorter pulse is pretty hard considering the amount of interrupt latency involved. I suspect that you could modify the code to infer that the shorter pulse occured, you just won’t be able to measure it.
Yeah, CCP capture mode would work well, but unfortuanetly the FRC robot controller has non-defeatable output buffers on those pins. If you have a EDU-RC around, PWM 1 through 4 can be configured as an input and map to CCP pins.
what is the use of the GTS if it cant return direction?
oh well…
either way we determined that it wasn’t worth trying to use these sensors so we have some encoders arriving tomorrow… which should help a lot. The GTS idea was a half-thought-out idea for determining the angle of an arm, but after some thought we determined 6 degree precision wasn’t enough.