From 120161857b53787c07d36c4cebacc8ff01809abe Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Fri, 1 Jan 2021 09:45:34 +1100 Subject: [PATCH] Make no-accel==99 a #define --- workspace/TS100/Core/Inc/main.hpp | 1 + workspace/TS100/Core/Src/gui.cpp | 5 ++--- workspace/TS100/Core/Threads/MOVThread.cpp | 14 ++++++++------ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/workspace/TS100/Core/Inc/main.hpp b/workspace/TS100/Core/Inc/main.hpp index 206a329e..3850ab6e 100755 --- a/workspace/TS100/Core/Inc/main.hpp +++ b/workspace/TS100/Core/Inc/main.hpp @@ -14,6 +14,7 @@ extern "C" { void vApplicationStackOverflowHook(TaskHandle_t *pxTask, signed portCHAR *pcTaskName); +#define NO_DETECTED_ACCELEROMETER 99 //Threads void startGUITask(void const *argument); void startPIDTask(void const *argument); diff --git a/workspace/TS100/Core/Src/gui.cpp b/workspace/TS100/Core/Src/gui.cpp index 0e6778c2..86674071 100755 --- a/workspace/TS100/Core/Src/gui.cpp +++ b/workspace/TS100/Core/Src/gui.cpp @@ -371,7 +371,7 @@ static bool settings_setSleepTime(void) { systemSettings.SleepTime = 0; // can't set time over 10 mins } // Remember that ^ is the time of no movement - if (DetectedAccelerometerVersion == 99) + if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) systemSettings.SleepTime = 0; // Disable sleep on no accel return systemSettings.SleepTime == 15; } @@ -394,7 +394,7 @@ static bool settings_setShutdownTime(void) { if (systemSettings.ShutdownTime > 60) { systemSettings.ShutdownTime = 0; // wrap to off } - if (DetectedAccelerometerVersion == 99) + if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) systemSettings.ShutdownTime = 0; // Disable shutdown on no accel return systemSettings.ShutdownTime == 60; } @@ -722,7 +722,6 @@ static bool settings_setCalibrateVIN(void) { // Jump to the voltage calibration subscreen OLED::setFont(0); OLED::clearScreen(); - OLED::setCursor(0, 0); for (;;) { OLED::setCursor(0, 0); diff --git a/workspace/TS100/Core/Threads/MOVThread.cpp b/workspace/TS100/Core/Threads/MOVThread.cpp index 79fdb18e..be6be6f9 100755 --- a/workspace/TS100/Core/Threads/MOVThread.cpp +++ b/workspace/TS100/Core/Threads/MOVThread.cpp @@ -28,7 +28,7 @@ void detectAccelerometerVersion() { if (MMA8652FC::detect()) { DetectedAccelerometerVersion = 1; if (!MMA8652FC::initalize()) { - DetectedAccelerometerVersion = 99; + DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER; } } else #endif @@ -37,7 +37,7 @@ void detectAccelerometerVersion() { DetectedAccelerometerVersion = 2; // Setup the ST Accelerometer if (!LIS2DH12::initalize()) { - DetectedAccelerometerVersion = 99; + DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER; } } else #endif @@ -46,12 +46,12 @@ void detectAccelerometerVersion() { DetectedAccelerometerVersion = 3; // Setup the ST Accelerometer if (!BMA223::initalize()) { - DetectedAccelerometerVersion = 99; + DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER; } } else #endif { - DetectedAccelerometerVersion = 99; + DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER; systemSettings.SleepTime = 0; systemSettings.ShutdownTime = 0; // No accel -> disable sleep systemSettings.sensitivity = 0; @@ -82,8 +82,10 @@ inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation } } void startMOVTask(void const *argument __unused) { - osDelay(1); //Make oled init happen first postRToSInit(); + while (OLED::isInitDone() == false) { + osDelay(1); //Make oled init happen first + } OLED::setRotation(systemSettings.OrientationMode & 1); detectAccelerometerVersion(); lastMovementTime = 0; @@ -148,7 +150,7 @@ void startMOVTask(void const *argument __unused) { // So now we have averages, we want to look if these are different by more // than the threshold - // If error has occurred then we update the tick timer + // If movement has occurred then we update the tick timer if (error > threshold) { lastMovementTime = xTaskGetTickCount(); }