|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||||
|
|||||
|
Get_Gyro_Angle() overflows beyond about -20000 deci-decgrees?
I'm trying to make an approximate lap counter by dividing the accumulated gyro angle by 360 (or 3600, since I'm working in decidegrees).
It works up to 5 laps, then the gyro value seems to wrap around to the positive side and start decreasing. I'm using long ints for the calculations. Here is a simplified version of the code.... Code:
long int gyroAngle; unsigned int numLaps = 0; gyroAngle = Get_Gyro_Angle(); if ( gyroAngle < 0L ) gyroAngle = -gyroAngle; //absolute value. numLaps = (unsigned int) ( (gyroAngle) / (long int)3600); printf( "gyro: %5ld LAPS = %2d\r\n", (gyroAngle), (int)numLaps ); // etc..... Code:
long Get_Gyro_Angle(void)
{
// Return the calculated gyro angle to the caller.
return(((gyro_angle * GYRO_SENSITIVITY * 5L) / (ADC_RANGE * ADC_UPDATE_RATE)) * GYRO_CAL_FACTOR);
}
|
|
#2
|
||||||
|
||||||
|
Re: Get_Gyro_Angle() overflows beyond about -20000 deci-decgrees?
Quote:
Last edited by Joe Ross : 29-02-2008 at 20:21. |
|
#3
|
|||||
|
|||||
|
Re: Get_Gyro_Angle() overflows beyond about -20000 deci-decgrees?
Okay, I'll check out Kevin's newer code....
BTW, for my current code I dereferenced the macros and got Code:
long Get_Gyro_Angle(void)
{
// Return the calculated gyro angle to the caller.
return(((gyro_angle * GYRO_SENSITIVITY * 5L) / (ADC_RANGE * ADC_UPDATE_RATE)) * GYRO_CAL_FACTOR);
// translates to:
//return(((gyro_angle * 800L * 5L) / (1024L * ADC_SAMPLE_RATE/(ADC_SAMPLES_PER_UPDATE * NUM_ADC_CHANNELS))) * 958/1000);
// which translates to ...
//return(((gyro_angle * 800L * 5L) / (1024L * 200/(4 * 1))) * 958/1000);
}
|
|
#4
|
|||||
|
|||||
|
Re: Get_Gyro_Angle() overflows beyond about -20000 deci-decgrees?
I've seen the gyro.c,h code in the new 3.0 compatible code. I am using 2.4. Can I just drop the gyro.c,h files into my code and expect everything to be fine? Or are there 3.0/2.4 issues?
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 'Robocup, soccerdogs, and beyond' | JaneYoung | Robotics Education and Curriculum | 0 | 24-02-2008 13:44 |
| Drivetrains beyond the KOP | twolf | Kit & Additional Hardware | 5 | 08-06-2006 17:25 |
| Beyond the rules: helpful suggestions? | Billfred | CD Forum Support | 1 | 25-05-2005 10:34 |
| Team 33--Above and Beyond | Beth Sweet | Thanks and/or Congrats | 3 | 04-04-2005 21:55 |
| Moving beyond boxes on wheels. | jon | General Forum | 29 | 07-04-2003 06:14 |