1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-22 12:54:14 +01:00

Checking ID on ST gyro works

This commit is contained in:
James Cotton 2012-01-04 23:23:42 -06:00
parent 0fbcf7723d
commit cc47520baa
5 changed files with 15 additions and 14 deletions

View File

@ -244,7 +244,7 @@ static void SensorsTask(void *parameters)
#endif #endif
// Using L3DG20 gyro // Using L3DG20 gyro
#elif defined(PIOS_INCLUDE_L3GD20) #elif 0 && defined(PIOS_INCLUDE_L3GD20)
struct pios_l3gd20_data gyro; struct pios_l3gd20_data gyro;
count = 0; count = 0;
while((read_good = PIOS_L3GD20_ReadFifo(&gyro)) != 0); while((read_good = PIOS_L3GD20_ReadFifo(&gyro)) != 0);
@ -288,7 +288,7 @@ static void SensorsTask(void *parameters)
gyrosData.y = gyros[1] * gyro_scaling; gyrosData.y = gyros[1] * gyro_scaling;
gyrosData.z = gyros[2] * gyro_scaling; gyrosData.z = gyros[2] * gyro_scaling;
gyrosData.temperature = 35.0f + ((float) gyro.temperature + 512.0f) / 340.0f; gyrosData.temperature = 35.0f + ((float) gyro.temperature + 512.0f) / 340.0f;
gyrosData.temperature = PIOS_L3GD20_ReadID();
if (bias_correct_gyro) { if (bias_correct_gyro) {
// Apply bias correction to the gyros // Apply bias correction to the gyros
GyrosBiasData gyrosBias; GyrosBiasData gyrosBias;

View File

@ -247,15 +247,15 @@ float PIOS_L3GD20_GetScale()
*/ */
uint8_t PIOS_L3GD20_Test(void) uint8_t PIOS_L3GD20_Test(void)
{ {
/* Verify that ID matches (MPU6050 ID is 0x69) */ int32_t l3gd20_id = PIOS_L3GD20_ReadID();
int32_t L3GD20_id = PIOS_L3GD20_ReadID(); if(l3gd20_id < 0)
if(L3GD20_id < 0)
return -1; return -1;
if(L3GD20_id != 0x68); uint8_t id = l3gd20_id;
return -2; if(id == 0xD4)
return 0; return 0;
return -2;
} }
/** /**

View File

@ -62,7 +62,7 @@
#define PIOS_L3GD20_FIFO_CNT_MSB 0x72 #define PIOS_L3GD20_FIFO_CNT_MSB 0x72
#define PIOS_L3GD20_FIFO_CNT_LSB 0x73 #define PIOS_L3GD20_FIFO_CNT_LSB 0x73
#define PIOS_L3GD20_FIFO_REG 0x74 #define PIOS_L3GD20_FIFO_REG 0x74
#define PIOS_L3GD20_WHOAMI 0x75 #define PIOS_L3GD20_WHOAMI 0x0F
/* FIFO enable for storing different values */ /* FIFO enable for storing different values */
#define PIOS_L3GD20_FIFO_TEMP_OUT 0x80 #define PIOS_L3GD20_FIFO_TEMP_OUT 0x80

View File

@ -59,7 +59,7 @@
#define PIOS_INCLUDE_HMC5883 #define PIOS_INCLUDE_HMC5883
//#define PIOS_INCLUDE_MPU6000 //#define PIOS_INCLUDE_MPU6000
//#define PIOS_MPU6000_ACCEL //#define PIOS_MPU6000_ACCEL
//#define PIOS_INCLUDE_L3GD20 #define PIOS_INCLUDE_L3GD20
#define PIOS_INCLUDE_MS5611 #define PIOS_INCLUDE_MS5611
//#define PIOS_INCLUDE_HCSR04 //#define PIOS_INCLUDE_HCSR04

View File

@ -1671,17 +1671,18 @@ void PIOS_Board_Init(void) {
PIOS_DELAY_WaitmS(500); PIOS_DELAY_WaitmS(500);
/*
#if defined(PIOS_INCLUDE_MPU6000) #if defined(PIOS_INCLUDE_MPU6000)
PIOS_MPU6000_Attach(pios_spi_gyro_id); PIOS_MPU6000_Attach(pios_spi_gyro_id);
PIOS_MPU6000_Init(&pios_mpu6000_cfg); PIOS_MPU6000_Init(&pios_mpu6000_cfg);
#elif defined(PIOS_INCLUDE_L3GD20) #elif defined(PIOS_INCLUDE_L3GD20)
PIOS_L3GD20_Attach(pios_spi_gyro_id); PIOS_L3GD20_Attach(pios_spi_gyro_id);
PIOS_Assert(PIOS_L3GD20_Test() == 0);
// PIOS_L3GD20_Init(&pios_l3gd20_cfg); // PIOS_L3GD20_Init(&pios_l3gd20_cfg);
#else #else
PIOS_Assert(0); PIOS_Assert(0);
#endif #endif
*/
PIOS_BMA180_Attach(pios_spi_accel_id); PIOS_BMA180_Attach(pios_spi_accel_id);
PIOS_BMA180_Init(&pios_bma180_cfg); PIOS_BMA180_Init(&pios_bma180_cfg);