Fix
This commit is contained in:
parent
55bcec9475
commit
f77e76e909
|
|
@ -57,7 +57,11 @@ typedef enum {
|
||||||
ACCEL_QMA6100P_RANGE_REG_32G = 0b1111,
|
ACCEL_QMA6100P_RANGE_REG_32G = 0b1111,
|
||||||
} eAccelQma6100pRangesReg;
|
} eAccelQma6100pRangesReg;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int32_t x;
|
||||||
|
int32_t y;
|
||||||
|
int32_t z;
|
||||||
|
} tAccelCoor;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
tSpiPortIO *port;
|
tSpiPortIO *port;
|
||||||
|
|
@ -66,6 +70,8 @@ typedef struct {
|
||||||
//только через setter
|
//только через setter
|
||||||
//private
|
//private
|
||||||
eAccelQma6100pRanges range;
|
eAccelQma6100pRanges range;
|
||||||
|
|
||||||
|
tAccelCoor xyz;
|
||||||
} tAccelQma6100P;
|
} tAccelQma6100P;
|
||||||
|
|
||||||
void AccelQma6100P_Init(tAccelQma6100P *env, tSpiPortIO *accelIO);
|
void AccelQma6100P_Init(tAccelQma6100P *env, tSpiPortIO *accelIO);
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,12 @@ static bool vAccelWriteReg(tAccelQma6100P *env, uint8_t reg, uint8_t value, uint
|
||||||
QMA6100P_RINO(SpiPortTransmit(env->port, &value_reg, timeout))
|
QMA6100P_RINO(SpiPortTransmit(env->port, &value_reg, timeout))
|
||||||
|
|
||||||
QMA6100P_RINO(SpiPortChipRelease(env->port, timeout))
|
QMA6100P_RINO(SpiPortChipRelease(env->port, timeout))
|
||||||
|
SystemDelayMs(50);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool vAccelReadReg(tAccelQma6100P *env, uint8_t reg, uint8_t *data, uint32_t timeout) {
|
static bool vAccelReadReg(tAccelQma6100P *env, uint8_t reg, uint8_t *data, uint32_t timeout) {
|
||||||
|
|
||||||
uint16_t back;
|
uint16_t back;
|
||||||
uint16_t adr_reg = reg | 0x80;
|
uint16_t adr_reg = reg | 0x80;
|
||||||
|
|
||||||
|
|
@ -159,6 +158,7 @@ bool AccelQma6100P_ConfigureDefaults(tAccelQma6100P *env) {
|
||||||
|
|
||||||
|
|
||||||
//todo return on error, сделать вывод с ошибкой (false) в случае сбоя при записи конфигурации
|
//todo return on error, сделать вывод с ошибкой (false) в случае сбоя при записи конфигурации
|
||||||
|
SystemDelayMs(200);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -211,6 +211,15 @@ bool AccelQma6100P_ReadOne(tAccelQma6100P *env, uint8_t firstReg, float *value)
|
||||||
|
|
||||||
int32_t valueMicroG = rowValue * env->range;
|
int32_t valueMicroG = rowValue * env->range;
|
||||||
|
|
||||||
|
if (firstReg == QMA6100P_REG_ACC_X_L)
|
||||||
|
env->xyz.x = valueMicroG;
|
||||||
|
|
||||||
|
if (firstReg == QMA6100P_REG_ACC_Y_L)
|
||||||
|
env->xyz.y = valueMicroG;
|
||||||
|
|
||||||
|
if (firstReg == QMA6100P_REG_ACC_Z_L)
|
||||||
|
env->xyz.z = valueMicroG;
|
||||||
|
|
||||||
*value = roundf(valueMicroG) / 1000000.f;
|
*value = roundf(valueMicroG) / 1000000.f;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue