- Код: Выделить всё • Развернуть
//Initialization of ADXL345
ADXL345_SPIWrite_Byte(DATA_FORMAT, 0); //SPI 4-wire
ADXL345_SPIWrite_Byte(POWER_CTL, 0); //ADXL345 is off
ADXL345_SPIWrite_Byte(POWER_CTL, 8); //ADXL345 is measure
ADXL345_SPIWrite_Byte(DATA_FORMAT, 0); //ADXL345 resolution 2g
Значения ускорения по осям определяю так:
- Код: Выделить всё • Развернуть
//Read DATAxx-register of ADXL345
for(y=0; y < 6; y++) ADXL345_Data_Array[y] = ADXL345_SPIRead_Byte(DATAX0 + y);
AxisX += ((signed int)ADXL345_Data_Array[1] << 8) | ADXL345_Data_Array[0];
AxisY += ((signed int)ADXL345_Data_Array[3] << 8) | ADXL345_Data_Array[2];
AxisZ += ((signed int)ADXL345_Data_Array[5] << 8) | ADXL345_Data_Array[4];
Проблема: при считывании регистров DATAX0 - DATAY1 значения AxisX = AxisY = AxisZ = 511 всегда! В чем может быть дело?