diff options
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/Bma421.cpp | 4 | ||||
-rw-r--r-- | src/drivers/Cst816s.cpp | 18 | ||||
-rw-r--r-- | src/drivers/Cst816s.h | 2 | ||||
-rw-r--r-- | src/drivers/DebugPins.cpp | 2 | ||||
-rw-r--r-- | src/drivers/Hrs3300.cpp | 14 | ||||
-rw-r--r-- | src/drivers/Hrs3300.h | 6 | ||||
-rw-r--r-- | src/drivers/InternalFlash.cpp | 2 | ||||
-rw-r--r-- | src/drivers/PinMap.h | 1 | ||||
-rw-r--r-- | src/drivers/Spi.cpp | 2 | ||||
-rw-r--r-- | src/drivers/Spi.h | 2 | ||||
-rw-r--r-- | src/drivers/SpiMaster.cpp | 2 | ||||
-rw-r--r-- | src/drivers/SpiNorFlash.cpp | 4 | ||||
-rw-r--r-- | src/drivers/St7789.cpp | 4 | ||||
-rw-r--r-- | src/drivers/TwiMaster.cpp | 2 | ||||
-rw-r--r-- | src/drivers/Watchdog.cpp | 2 |
15 files changed, 31 insertions, 36 deletions
diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp index dd284000..2f60f42f 100644 --- a/src/drivers/Bma421.cpp +++ b/src/drivers/Bma421.cpp @@ -1,7 +1,7 @@ +#include "drivers/Bma421.h" #include <libraries/delay/nrf_delay.h> #include <libraries/log/nrf_log.h> -#include "Bma421.h" -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" #include <drivers/Bma421_C/bma423.h> using namespace Pinetime::Drivers; diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp index 4aac19f9..e9573df1 100644 --- a/src/drivers/Cst816s.cpp +++ b/src/drivers/Cst816s.cpp @@ -1,4 +1,4 @@ -#include "Cst816s.h" +#include "drivers/Cst816s.h" #include <FreeRTOS.h> #include <legacy/nrf_drv_gpiote.h> #include <nrfx_log.h> @@ -32,17 +32,11 @@ bool Cst816S::Init() { twiMaster.Read(twiAddress, 0xa7, &dummy, 1); vTaskDelay(5); - static constexpr uint8_t maxRetries = 3; - bool isDeviceOk; - uint8_t retries = 0; - do { - isDeviceOk = CheckDeviceIds(); - retries++; - } while (!isDeviceOk && retries < maxRetries); - - if (!isDeviceOk) { - return false; - } + // TODO This function check that the device IDs from the controller are equal to the ones + // we expect. However, it seems to return false positive (probably in case of communication issue). + // Also, it seems that some users have pinetimes that works correctly but that report different device IDs + // Until we know more about this, we'll just read the IDs but not take any action in case they are not 'valid' + CheckDeviceIds(); /* [2] EnConLR - Continuous operation can slide around diff --git a/src/drivers/Cst816s.h b/src/drivers/Cst816s.h index 507dd4f5..4a548d45 100644 --- a/src/drivers/Cst816s.h +++ b/src/drivers/Cst816s.h @@ -1,6 +1,6 @@ #pragma once -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" namespace Pinetime { namespace Drivers { diff --git a/src/drivers/DebugPins.cpp b/src/drivers/DebugPins.cpp index 56fd1458..92091280 100644 --- a/src/drivers/DebugPins.cpp +++ b/src/drivers/DebugPins.cpp @@ -1,4 +1,4 @@ -#include "DebugPins.h" +#include "drivers/DebugPins.h" #include <hal/nrf_gpio.h> #ifdef USE_DEBUG_PINS diff --git a/src/drivers/Hrs3300.cpp b/src/drivers/Hrs3300.cpp index edb9e81d..ec620af2 100644 --- a/src/drivers/Hrs3300.cpp +++ b/src/drivers/Hrs3300.cpp @@ -4,9 +4,9 @@ C++ port Copyright (C) 2021 Jean-François Milants */ +#include "drivers/Hrs3300.h" #include <algorithm> #include <nrf_gpio.h> -#include "Hrs3300.h" #include <FreeRTOS.h> #include <task.h> @@ -36,8 +36,8 @@ void Hrs3300::Init() { // HRS and ALS both in 16-bit mode WriteRegister(static_cast<uint8_t>(Registers::Res), 0x88); - // 64x gain - WriteRegister(static_cast<uint8_t>(Registers::Hgain), 0x10); + // 8x gain, non default, reduced value for better readings + WriteRegister(static_cast<uint8_t>(Registers::Hgain), 0xc); } void Hrs3300::Enable() { @@ -54,18 +54,18 @@ void Hrs3300::Disable() { WriteRegister(static_cast<uint8_t>(Registers::Enable), value); } -uint16_t Hrs3300::ReadHrs() { +uint32_t Hrs3300::ReadHrs() { auto m = ReadRegister(static_cast<uint8_t>(Registers::C0DataM)); auto h = ReadRegister(static_cast<uint8_t>(Registers::C0DataH)); auto l = ReadRegister(static_cast<uint8_t>(Registers::C0dataL)); - return (m << 8) | ((h & 0x0f) << 4) | (l & 0x0f) | ((l & 0x30) << 12); + return ((l & 0x30) << 12) | (m << 8) | ((h & 0x0f) << 4) | (l & 0x0f); } -uint16_t Hrs3300::ReadAls() { +uint32_t Hrs3300::ReadAls() { auto m = ReadRegister(static_cast<uint8_t>(Registers::C1dataM)); auto h = ReadRegister(static_cast<uint8_t>(Registers::C1dataH)); auto l = ReadRegister(static_cast<uint8_t>(Registers::C1dataL)); - return (m << 3) | ((h & 0x3f) << 11) | (l & 0x07); + return ((h & 0x3f) << 11) | (m << 3) | (l & 0x07); } void Hrs3300::SetGain(uint8_t gain) { diff --git a/src/drivers/Hrs3300.h b/src/drivers/Hrs3300.h index c4f28900..8bbdc69a 100644 --- a/src/drivers/Hrs3300.h +++ b/src/drivers/Hrs3300.h @@ -1,6 +1,6 @@ #pragma once -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" namespace Pinetime { namespace Drivers { @@ -30,8 +30,8 @@ namespace Pinetime { void Init(); void Enable(); void Disable(); - uint16_t ReadHrs(); - uint16_t ReadAls(); + uint32_t ReadHrs(); + uint32_t ReadAls(); void SetGain(uint8_t gain); void SetDrive(uint8_t drive); diff --git a/src/drivers/InternalFlash.cpp b/src/drivers/InternalFlash.cpp index 0840c6e5..ec5885d5 100644 --- a/src/drivers/InternalFlash.cpp +++ b/src/drivers/InternalFlash.cpp @@ -1,4 +1,4 @@ -#include "InternalFlash.h" +#include "drivers/InternalFlash.h" #include <mdk/nrf.h> using namespace Pinetime::Drivers; diff --git a/src/drivers/PinMap.h b/src/drivers/PinMap.h index 57964020..579bf38a 100644 --- a/src/drivers/PinMap.h +++ b/src/drivers/PinMap.h @@ -1,4 +1,5 @@ #pragma once +#include <cstdint> namespace Pinetime { namespace PinMap { diff --git a/src/drivers/Spi.cpp b/src/drivers/Spi.cpp index a55d2888..e477622b 100644 --- a/src/drivers/Spi.cpp +++ b/src/drivers/Spi.cpp @@ -1,4 +1,4 @@ -#include "Spi.h" +#include "drivers/Spi.h" #include <hal/nrf_gpio.h> #include <nrfx_log.h> diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h index 6875710d..9b6a30f4 100644 --- a/src/drivers/Spi.h +++ b/src/drivers/Spi.h @@ -1,7 +1,7 @@ #pragma once #include <cstdint> #include <cstddef> -#include "SpiMaster.h" +#include "drivers/SpiMaster.h" namespace Pinetime { namespace Drivers { diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp index c45e1294..747dbc84 100644 --- a/src/drivers/SpiMaster.cpp +++ b/src/drivers/SpiMaster.cpp @@ -1,4 +1,4 @@ -#include "SpiMaster.h" +#include "drivers/SpiMaster.h" #include <hal/nrf_gpio.h> #include <hal/nrf_spim.h> #include <nrfx_log.h> diff --git a/src/drivers/SpiNorFlash.cpp b/src/drivers/SpiNorFlash.cpp index 068d1d02..ebe3174c 100644 --- a/src/drivers/SpiNorFlash.cpp +++ b/src/drivers/SpiNorFlash.cpp @@ -1,8 +1,8 @@ -#include "SpiNorFlash.h" +#include "drivers/SpiNorFlash.h" #include <hal/nrf_gpio.h> #include <libraries/delay/nrf_delay.h> #include <libraries/log/nrf_log.h> -#include "Spi.h" +#include "drivers/Spi.h" using namespace Pinetime::Drivers; diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp index 4d81cf27..fd1366f8 100644 --- a/src/drivers/St7789.cpp +++ b/src/drivers/St7789.cpp @@ -1,8 +1,8 @@ -#include "St7789.h" +#include "drivers/St7789.h" #include <hal/nrf_gpio.h> #include <libraries/delay/nrf_delay.h> #include <nrfx_log.h> -#include "Spi.h" +#include "drivers/Spi.h" using namespace Pinetime::Drivers; diff --git a/src/drivers/TwiMaster.cpp b/src/drivers/TwiMaster.cpp index 76009278..9b456d5f 100644 --- a/src/drivers/TwiMaster.cpp +++ b/src/drivers/TwiMaster.cpp @@ -1,4 +1,4 @@ -#include "TwiMaster.h" +#include "drivers/TwiMaster.h" #include <cstring> #include <hal/nrf_gpio.h> #include <nrfx_log.h> diff --git a/src/drivers/Watchdog.cpp b/src/drivers/Watchdog.cpp index a6ad263a..d0907a65 100644 --- a/src/drivers/Watchdog.cpp +++ b/src/drivers/Watchdog.cpp @@ -1,4 +1,4 @@ -#include "Watchdog.h" +#include "drivers/Watchdog.h" #include <mdk/nrf.h> using namespace Pinetime::Drivers; |