Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Determining pulse width for the GTS? (http://www.chiefdelphi.com/forums/showthread.php?t=52891)

Uberbots 27-01-2007 15:56

Determining pulse width for the GTS?
 
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...

Mike Betts 27-01-2007 21:57

Re: Determining pulse width for the GTS?
 
Billy,

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.

Regards,

Mike

Alan Anderson 27-01-2007 22:40

Re: Determining pulse width for the GTS?
 
Quote:

Originally Posted by Uberbots (Post 566380)
...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.

Sorry, that was last year. This year's Gear Tooth Sensor uses a different Allegro part and doesn't give the direction information.

Uberbots 28-01-2007 12:47

Re: Determining pulse width for the GTS?
 
@Alan Anderson:
I know that... but i am holding the 2006 sensor in my hand right now.

jgannon 28-01-2007 13:14

Re: Determining pulse width for the GTS?
 
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.

Kevin Watson 28-01-2007 18:11

Re: Determining pulse width for the GTS?
 
Quote:

Originally Posted by Uberbots (Post 566380)
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?

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.

Quote:

Originally Posted by Uberbots (Post 566380)
EDIT: some new realizations by me tell me that the PWM pins can be configured as inputs for measuring signals like this...

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.

-Kevin

Uberbots 28-01-2007 21:12

Re: Determining pulse width for the GTS?
 
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.

Thanks for the help, though


All times are GMT -5. The time now is 04:05.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi