diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-03-27 10:11:34 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-03-27 10:11:34 (GMT) |
| commit | 4f81b59e2cd453c1a9422fb1f45d2cd27d52b2a3 (patch) | |
| tree | 025c4a6cac1f059247ea5777c49ff56fd7bf2fb8 /src/drivers | |
| parent | c8694c78c6cc05ae09e862e7ecd09407c7a3c3b7 (diff) | |
Attempt to show temperature reading
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Bma421.cpp | 17 | ||||
| -rw-r--r-- | src/drivers/Bma421.h | 5 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp index 2f60f42..c5d55cc 100644 --- a/src/drivers/Bma421.cpp +++ b/src/drivers/Bma421.cpp @@ -102,9 +102,7 @@ Bma421::Values Bma421::Process() { uint32_t steps = 0; bma423_step_counter_output(&steps, &bma); - int32_t temperature; - bma4_get_temperature(&temperature, BMA4_DEG, &bma); - temperature = temperature / 1000; + RefreshTemperature(); uint8_t activity = 0; bma423_activity_output(&activity, &bma); @@ -112,6 +110,19 @@ Bma421::Values Bma421::Process() { // X and Y axis are swapped because of the way the sensor is mounted in the PineTime return {steps, data.y, data.x, data.z}; } + +void Bma421::RefreshTemperature() { + // uint8_t temperature_last_read_value; + // uint8_t temperature_last_result; + // uint8_t temperature_read_counter; + uint8_t data[BMA4_TEMP_DATA_SIZE] = { 0 }; + temperature_last_result = bma4_read_regs(BMA4_TEMPERATURE_ADDR, data, BMA4_TEMP_DATA_SIZE, &bma); + if (temperature_last_result == BMA4_OK) { + temperature_last_read_value = data[BMA4_TEMP_BYTE]; + temperature_read_counter++; + } +} + bool Bma421::IsOk() const { return isOk; } diff --git a/src/drivers/Bma421.h b/src/drivers/Bma421.h index ace644b..1503acd 100644 --- a/src/drivers/Bma421.h +++ b/src/drivers/Bma421.h @@ -30,6 +30,11 @@ namespace Pinetime { Values Process(); void ResetStepCounter(); + void RefreshTemperature(); + uint8_t temperature_last_read_value; + uint8_t temperature_last_result; + uint8_t temperature_read_counter; + void Read(uint8_t registerAddress, uint8_t* buffer, size_t size); void Write(uint8_t registerAddress, const uint8_t* data, size_t size); |
