mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
Add ID test to ADXL345
This commit is contained in:
parent
946c6a7f1d
commit
4d3af7afbf
@ -172,12 +172,15 @@ MODULE_INITCALL(AttitudeInitialize, AttitudeStart)
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
*/
|
||||
|
||||
int32_t adxl_test;
|
||||
static void AttitudeTask(void *parameters)
|
||||
{
|
||||
uint8_t init = 0;
|
||||
AlarmsClear(SYSTEMALARMS_ALARM_ATTITUDE);
|
||||
|
||||
PIOS_ADC_Config((PIOS_ADC_RATE / 1000.0f) * UPDATE_RATE);
|
||||
adxl_test = PIOS_ADXL345_Test();
|
||||
|
||||
// Set critical error and wait until the accel is producing data
|
||||
while(PIOS_ADXL345_FifoElements() == 0) {
|
||||
|
@ -225,6 +225,31 @@ int32_t PIOS_ADXL345_Init(uint32_t spi_id, uint32_t slave_num)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Return number of entries in the fifo
|
||||
*/
|
||||
int32_t PIOS_ADXL345_Test()
|
||||
{
|
||||
if(PIOS_ADXL345_Validate(dev) != 0)
|
||||
return -1;
|
||||
|
||||
if(PIOS_ADXL345_ClaimBus() != 0)
|
||||
return -2;
|
||||
|
||||
uint8_t buf[2] = {0,0};
|
||||
uint8_t rec[2] = {0,0};
|
||||
buf[0] = ADXL_WHOAMI | ADXL_READ_BIT;
|
||||
|
||||
if(PIOS_SPI_TransferBlock(dev->spi_id,&buf[0],&rec[0],sizeof(buf),NULL) < 0) {
|
||||
PIOS_ADXL345_ReleaseBus();
|
||||
return -3;
|
||||
}
|
||||
|
||||
PIOS_ADXL345_ReleaseBus();
|
||||
|
||||
return (rec[1] == ADXL_DEVICE_ID) ? 0 : -4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Return number of entries in the fifo
|
||||
*/
|
||||
|
@ -34,6 +34,8 @@
|
||||
#define ADXL_READ_BIT 0x80
|
||||
#define ADXL_MULTI_BIT 0x40
|
||||
|
||||
#define ADXL_WHOAMI 0x00
|
||||
#define ADXL_DEVICE_ID 0xE5
|
||||
#define ADXL_X0_ADDR 0x32
|
||||
#define ADXL_FIFOSTATUS_ADDR 0x39
|
||||
|
||||
@ -70,7 +72,8 @@ int32_t PIOS_ADXL345_SelectRate(uint8_t rate);
|
||||
int32_t PIOS_ADXL345_SetRange(uint8_t range);
|
||||
int32_t PIOS_ADXL345_Init(uint32_t spi_id, uint32_t slave_num);
|
||||
uint8_t PIOS_ADXL345_Read(struct pios_adxl345_data * data);
|
||||
int32_t PIOS_ADXL345_FifoElements();
|
||||
int32_t PIOS_ADXL345_FifoElements();
|
||||
int32_t PIOS_ADXL345_Test();
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user