Merge branch 'master' into ralim/scrollbar
This commit is contained in:
@@ -26,6 +26,7 @@ extern const char *SymbolCellCount;
|
||||
extern const char *SymbolVersionNumber;
|
||||
|
||||
extern const char *DebugMenu[];
|
||||
extern const char *AccelTypeNames[];
|
||||
|
||||
enum class SettingsItemIndex : uint8_t {
|
||||
DCInCutoff,
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
#include "OLED.hpp"
|
||||
#include "Setup.h"
|
||||
extern uint8_t DetectedAccelerometerVersion;
|
||||
extern uint32_t currentTempTargetDegC;
|
||||
extern bool settingsWereReset;
|
||||
extern bool usb_pd_available;
|
||||
@@ -13,8 +12,6 @@ extern "C" {
|
||||
|
||||
void vApplicationStackOverflowHook(TaskHandle_t *pxTask, signed portCHAR *pcTaskName);
|
||||
|
||||
#define NO_DETECTED_ACCELEROMETER 99
|
||||
#define ACCELEROMETERS_SCANNING 100
|
||||
// Threads
|
||||
void startGUITask(void const *argument);
|
||||
void startPIDTask(void const *argument);
|
||||
@@ -26,5 +23,17 @@ extern uint8_t accelInit;
|
||||
extern TickType_t lastMovementTime;
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
// Accelerometer type
|
||||
enum class AccelType {
|
||||
Scanning = 0,
|
||||
None = 1,
|
||||
MMA = 2,
|
||||
LIS = 3,
|
||||
BMA = 4,
|
||||
MSA = 5,
|
||||
SC7 = 6,
|
||||
};
|
||||
extern AccelType DetectedAccelerometerVersion;
|
||||
|
||||
#endif
|
||||
#endif /* __MAIN_H */
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
#include "Settings.h"
|
||||
#include "cmsis_os.h"
|
||||
#include "power.hpp"
|
||||
uint8_t DetectedAccelerometerVersion = 0;
|
||||
bool settingsWereReset = false;
|
||||
AccelType DetectedAccelerometerVersion = AccelType::Scanning;
|
||||
bool settingsWereReset = false;
|
||||
// FreeRTOS variables
|
||||
|
||||
osThreadId GUITaskHandle;
|
||||
|
||||
@@ -713,7 +713,7 @@ void showDebugMenu(void) {
|
||||
break;
|
||||
case 10:
|
||||
// Print PCB ID number
|
||||
OLED::printNumber(DetectedAccelerometerVersion, 2, FontStyle::SMALL);
|
||||
OLED::print(AccelTypeNames[(int)DetectedAccelerometerVersion], FontStyle::SMALL);
|
||||
break;
|
||||
case 11:
|
||||
// Power negotiation status
|
||||
@@ -768,11 +768,11 @@ void showWarnings() {
|
||||
// We also want to alert if accel or pd is not detected / not responding
|
||||
// In this case though, we dont want to nag the user _too_ much
|
||||
// So only show first 2 times
|
||||
while (DetectedAccelerometerVersion == ACCELEROMETERS_SCANNING) {
|
||||
while (DetectedAccelerometerVersion == AccelType::Scanning) {
|
||||
osDelay(5);
|
||||
}
|
||||
// Display alert if accelerometer is not detected
|
||||
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) {
|
||||
if (DetectedAccelerometerVersion == AccelType::None) {
|
||||
if (getSettingValue(SettingsOptions::AccelMissingWarningCounter) < 2) {
|
||||
nextSettingValue(SettingsOptions::AccelMissingWarningCounter);
|
||||
saveSettings();
|
||||
|
||||
@@ -29,11 +29,11 @@ uint8_t accelInit = 0;
|
||||
TickType_t lastMovementTime = 0;
|
||||
|
||||
void detectAccelerometerVersion() {
|
||||
DetectedAccelerometerVersion = ACCELEROMETERS_SCANNING;
|
||||
DetectedAccelerometerVersion = AccelType::Scanning;
|
||||
#ifdef ACCEL_MMA
|
||||
if (MMA8652FC::detect()) {
|
||||
if (MMA8652FC::initalize()) {
|
||||
DetectedAccelerometerVersion = 1;
|
||||
DetectedAccelerometerVersion = AccelType::MMA;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
@@ -41,7 +41,7 @@ void detectAccelerometerVersion() {
|
||||
if (LIS2DH12::detect()) {
|
||||
// Setup the ST Accelerometer
|
||||
if (LIS2DH12::initalize()) {
|
||||
DetectedAccelerometerVersion = 2;
|
||||
DetectedAccelerometerVersion = AccelType::LIS;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
@@ -49,7 +49,7 @@ void detectAccelerometerVersion() {
|
||||
if (BMA223::detect()) {
|
||||
// Setup the BMA223 Accelerometer
|
||||
if (BMA223::initalize()) {
|
||||
DetectedAccelerometerVersion = 3;
|
||||
DetectedAccelerometerVersion = AccelType::BMA;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
@@ -57,7 +57,7 @@ void detectAccelerometerVersion() {
|
||||
if (MSA301::detect()) {
|
||||
// Setup the MSA301 Accelerometer
|
||||
if (MSA301::initalize()) {
|
||||
DetectedAccelerometerVersion = 4;
|
||||
DetectedAccelerometerVersion = AccelType::MSA;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
@@ -65,43 +65,43 @@ void detectAccelerometerVersion() {
|
||||
if (SC7A20::detect()) {
|
||||
// Setup the SC7A20 Accelerometer
|
||||
if (SC7A20::initalize()) {
|
||||
DetectedAccelerometerVersion = 5;
|
||||
DetectedAccelerometerVersion = AccelType::SC7;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
// disable imu sensitivity
|
||||
setSettingValue(SettingsOptions::Sensitivity, 0);
|
||||
DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER;
|
||||
DetectedAccelerometerVersion = AccelType::None;
|
||||
}
|
||||
}
|
||||
inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) {
|
||||
#ifdef ACCEL_LIS
|
||||
if (DetectedAccelerometerVersion == 2) {
|
||||
LIS2DH12::getAxisReadings(tx, ty, tz);
|
||||
rotation = LIS2DH12::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_MMA
|
||||
if (DetectedAccelerometerVersion == 1) {
|
||||
if (DetectedAccelerometerVersion == AccelType::MMA) {
|
||||
MMA8652FC::getAxisReadings(tx, ty, tz);
|
||||
rotation = MMA8652FC::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_LIS
|
||||
if (DetectedAccelerometerVersion == AccelType::LIS) {
|
||||
LIS2DH12::getAxisReadings(tx, ty, tz);
|
||||
rotation = LIS2DH12::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_BMA
|
||||
if (DetectedAccelerometerVersion == 3) {
|
||||
if (DetectedAccelerometerVersion == AccelType::BMA) {
|
||||
BMA223::getAxisReadings(tx, ty, tz);
|
||||
rotation = BMA223::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_MSA
|
||||
if (DetectedAccelerometerVersion == 4) {
|
||||
if (DetectedAccelerometerVersion == AccelType::MSA) {
|
||||
MSA301::getAxisReadings(tx, ty, tz);
|
||||
rotation = MSA301::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_SC7
|
||||
if (DetectedAccelerometerVersion == 5) {
|
||||
if (DetectedAccelerometerVersion == AccelType::SC7) {
|
||||
SC7A20::getAxisReadings(tx, ty, tz);
|
||||
rotation = SC7A20::getOrientation();
|
||||
} else
|
||||
|
||||
Reference in New Issue
Block a user