Fixed bugs in mag. field scaling math.
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
This commit is contained in:
parent
aeb289b758
commit
ca79f370b0
@ -346,24 +346,22 @@ ReturnValue_t MGMHandlerLIS3MDL::interpretDeviceReply(DeviceCommandId_t id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t MGMHandlerLIS3MDL::getFullScale(uint8_t ctrlRegister2) {
|
uint8_t MGMHandlerLIS3MDL::getFullScale(uint8_t ctrlRegister2) {
|
||||||
bool FS0 = false;
|
uint8_t getFullScale(uint8_t ctrlRegister2) {
|
||||||
bool FS1 = false;
|
bool FS0_set = ctrlRegister2 & (1 << MGMLIS3MDL::FSO); // Checks if FS0 bit is set
|
||||||
if ((ctrlRegister2 >> 5) == 1)
|
bool FS1_set = ctrlRegister2 & (1 << MGMLIS3MDL::FS1); // Checks if FS1 bit is set
|
||||||
FS0 = true;
|
|
||||||
if ((ctrlRegister2 >> 6) == 1)
|
if (FS0_set && FS1_set)
|
||||||
FS1 = true;
|
|
||||||
if ((FS0 == true) && (FS1 == true))
|
|
||||||
return 16;
|
return 16;
|
||||||
else if ((FS0 == false) && (FS1 == true))
|
else if (!FS0_set && FS1_set)
|
||||||
return 12;
|
return 12;
|
||||||
else if ((FS0 == true) && (FS1 == false))
|
else if (FS0_set && !FS1_set)
|
||||||
return 8;
|
return 8;
|
||||||
else
|
else
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
float MGMHandlerLIS3MDL::getSensitivityFactor(uint8_t scale) {
|
float MGMHandlerLIS3MDL::getSensitivityFactor(uint8_t scale) {
|
||||||
return (float) scale / (INT16_MAX);
|
return (float)scale / (float)MGMLIS3MDL::FIELD_LSB_PER_GAUSS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,9 @@ enum opMode {
|
|||||||
/* Actually 15, we just round up a bit */
|
/* Actually 15, we just round up a bit */
|
||||||
static constexpr size_t MAX_BUFFER_SIZE = 16;
|
static constexpr size_t MAX_BUFFER_SIZE = 16;
|
||||||
|
|
||||||
|
/* Field data register scaling */
|
||||||
static constexpr uint8_t GAUSS_TO_MICROTESLA_FACTOR = 100;
|
static constexpr uint8_t GAUSS_TO_MICROTESLA_FACTOR = 100;
|
||||||
|
static constexpr uint16_t FIELD_LSB_PER_GAUSS = 27368;
|
||||||
|
|
||||||
static const DeviceCommandId_t READ_CONFIG_AND_DATA = 0x00;
|
static const DeviceCommandId_t READ_CONFIG_AND_DATA = 0x00;
|
||||||
static const DeviceCommandId_t SETUP_MGM = 0x01;
|
static const DeviceCommandId_t SETUP_MGM = 0x01;
|
||||||
|
Loading…
Reference in New Issue
Block a user