|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Gear tooth sensor / GTS on DIO 3,4,5,6?
Thanks for your feedback...yeah, the second pin code has been removed.
The only thing going on in the code is the counter incrementing on any interrupt, whether the pulse is going high or low. I haven't looked at the hardware specs yet...and I'm not really a digital guy, but I'm wondering if the pulse in that direction is so short that the low-going interrupt triggers before the handler is done with the high-going interrupt. Would something like that cause the handler to bail before the first calculation is done? It would explain why it's not incrementing at all, but I'm just guessing. I'll keep looking... We appreciate your input! - Jason D. Team 1027: The Mechatronic Maniacs www.team1027.com |
|
#2
|
|||||
|
|||||
|
Re: Gear tooth sensor / GTS on DIO 3,4,5,6?
The "short" pulse from the GTS is about 30 microseconds. If it takes longer than that for the interrupt service routine to get around to clearing the proper interrupt flag, you'll already have missed the falling edge and won't get another interrupt from it. That means that you'd only count one transition per pulse, as opposed to two for the other sensor, but I don't see why you'd get no counts.
Just as a random suggestion, try moving the code for pins 3-6 to as early in the ISR as possible, before any serial interrupt, pins 1-2, or timer interrupt checks. If it is the pulse length that's tripping you up, that might help. One more thing occurs to me, and please forgive my nagging about it, but can you double-check to make sure you're not still testing the state of the input pin and deciding whether to increment or decrement the counter? If that code is still there, then you're actually getting counts for the short pulse (because you're always reading it as low by the time you test it), but you're counting one way and then immediately the other way for the long pulses so it doesn't look like you're counting at all. |
|
#3
|
|||
|
|||
|
Re: Gear tooth sensor / GTS on DIO 3,4,5,6?
Quote:
Code:
void Int_3_Handler(unsigned char RB4_State)
{
// this function will be called when an interrupt 3 occurs
LF_Count = LF_Count + 1;
}
Code:
void Int_4_Handler(unsigned char RB5_State)
{
// this function will be called when an interrupt 4 occurs
if ((rc_dig_in04 == 0) && (LR_Last_State == 1))
{
if (LR_PHASE_B_PIN == 0)
{
LR_Count = LR_Count - 1;
}
else
{
LR_Count = LR_Count + 1;
}
}
// remember the input state for next time
LR_Last_State = rc_dig_in04;
}
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Will the gear tooth break? | sanddrag | Technical Discussion | 11 | 23-01-2006 14:24 |
| Gear Tooth Sensor | AMIRAM | Electrical | 2 | 22-01-2006 04:09 |
| Gear tooth sensor vs. Optical Encoders | Avarik | Programming | 7 | 17-01-2006 10:18 |
| Accelerometer vs Gear Tooth Sensors | zdeswarte | Electrical | 4 | 22-01-2005 15:35 |
| gears | Michael Leicht | Inventor | 12 | 16-09-2004 10:52 |