Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   gyro.h help (http://www.chiefdelphi.com/forums/showthread.php?t=74145)

carlos_85 11-02-2009 08:50

gyro.h help
 
I'm studying the gyro.h and i have a question. I'm working with ADXRS300.

In gyro.h -->

// Analog Devices' ADXRS300 (sensitivity = 5.0mV/deg/sec)
#ifdef ADXRS300
#define GYRO_SENSITIVITY_DEG 2000L // in units of tenths of a degree/sec/volt
#define GYRO_SENSITIVITY_RAD 3490L // in units of milliradians/sec/volt
#endif

the value of GYRO_SENSITIVY_DEG 2000L, how do you calculate this value? i'm reading the datasheet from ADXRS300 and i haven't found it anywhere.

Please help me!
Thank you

Alan Anderson 11-02-2009 09:31

Re: gyro.h help
 
Quote:

sensitivity = 5.0mV/deg/sec
There are ten tenths of a degree in each degree.
There are one thousand millivolts in each volt.

Does that help?

carlos_85 11-02-2009 10:15

Re: gyro.h help
 
Sorry, i don't understand it.

5 mV/ deg/sec

5 mV = 0,005 V
by other hand in gyro.c -->

int Get_Gyro_Rate(void)
{
// Return the calculated gyro rate to the caller.
return((int)((((long)gyro_rate * GYRO_SENSITIVITY * 5L) / ADC_RANGE)) * GYRO_CAL_FACTOR);
}

I think that 5L was the sensitivity, and then, ¿What is it?

Alan Anderson 11-02-2009 10:26

Re: gyro.h help
 
The ADXRS300 sensitivity is 5 millivolts per degree/second.

The constant in the code is in tenth-degree/second per volt.

5 millivolts per degree/second is 0.005 volts per degree/second.

0.005 volts per degree/second is 0.0005 volts per tenth-degree/second.

0.0005 volts per tenth-degree/second is 2000 tenth-degree/second per volt.

Is that clear?

carlos_85 11-02-2009 10:58

Re: gyro.h help
 
sorry again,
what do you do to change V per tenth-deg to V per seg?
i see that 2000 is the result to divide 1/0,0005 but i don't understand it.

By other side,

int Get_Gyro_Rate(void)
{
// Return the calculated gyro rate to the caller.
return((int)((((long)gyro_rate * GYRO_SENSITIVITY * 5L) / ADC_RANGE)) * GYRO_CAL_FACTOR);
}


5L, what is this?
thank you

Alan Anderson 11-02-2009 11:37

Re: gyro.h help
 
Quote:

Originally Posted by carlos_85 (Post 818552)
i see that 2000 is the result to divide 1/0,0005 but i don't understand it.

I don't know what you don't understand. You correctly see that to convert v/dd/s into dd/s/v, you take the multiplicative inverse. (Here, dd stands for decidegrees, a fancy name for tenths of a degree.)

Quote:

5L, what is this?
It's a C constant, with a value of 5 and a type of long integer. The L is used to keep the compiler from using a regular integer or even a char, which could result in an overflow of an intermediate result.


All times are GMT -5. The time now is 02:28.

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