Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2425902fbc |
@@ -385,18 +385,10 @@ bool FRToSI2C::lock() {
|
|||||||
if (I2CSemaphore == nullptr) {
|
if (I2CSemaphore == nullptr) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (xTaskGetSchedulerState() != taskSCHEDULER_RUNNING) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return xSemaphoreTake(I2CSemaphore, TICKS_SECOND) == pdTRUE;
|
return xSemaphoreTake(I2CSemaphore, TICKS_SECOND) == pdTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FRToSI2C::unlock() {
|
void FRToSI2C::unlock() { xSemaphoreGive(I2CSemaphore); }
|
||||||
if (xTaskGetSchedulerState() != taskSCHEDULER_RUNNING) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
xSemaphoreGive(I2CSemaphore);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool FRToSI2C::writeRegistersBulk(const uint8_t address, const I2C_REG *registers, const uint8_t registersLength) {
|
bool FRToSI2C::writeRegistersBulk(const uint8_t address, const I2C_REG *registers, const uint8_t registersLength) {
|
||||||
for (int index = 0; index < registersLength; index++) {
|
for (int index = 0; index < registersLength; index++) {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
* Author: Ralim
|
* Author: Ralim
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BSP_MINIWARE_IRQ_H_
|
#ifndef BSP_PINE64_IRQ_H_
|
||||||
#define BSP_MINIWARE_IRQ_H_
|
#define BSP_PINE64_IRQ_H_
|
||||||
|
|
||||||
#include "BSP.h"
|
#include "BSP.h"
|
||||||
#include "I2C_Wrapper.hpp"
|
#include "I2C_Wrapper.hpp"
|
||||||
@@ -53,4 +53,4 @@ extern volatile uint8_t i2c_process_flag;
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* BSP_MINIWARE_IRQ_H_ */
|
#endif /* BSP_PINE64_IRQ_H_ */
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
* Author: Ralim
|
* Author: Ralim
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BSP_MINIWARE_MODEL_CONFIG_H_
|
#ifndef BSP_PINE64_MODEL_CONFIG_H_
|
||||||
#define BSP_MINIWARE_MODEL_CONFIG_H_
|
#define BSP_PINE64_MODEL_CONFIG_H_
|
||||||
/*
|
/*
|
||||||
* Lookup for mapping features <-> Models
|
* Lookup for mapping features <-> Models
|
||||||
*/
|
*/
|
||||||
@@ -29,4 +29,4 @@
|
|||||||
#define BATTFILTERDEPTH 32
|
#define BATTFILTERDEPTH 32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* BSP_MINIWARE_MODEL_CONFIG_H_ */
|
#endif /* BSP_PINE64_MODEL_CONFIG_H_ */
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
* Author: Ralim
|
* Author: Ralim
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BSP_MINIWARE_PINS_H_
|
#ifndef BSP_PINE64_PINS_H_
|
||||||
#define BSP_MINIWARE_PINS_H_
|
#define BSP_PINE64_PINS_H_
|
||||||
#include "gd32vf103_gpio.h"
|
#include "gd32vf103_gpio.h"
|
||||||
|
|
||||||
#define KEY_B_Pin BIT(1)
|
#define KEY_B_Pin BIT(1)
|
||||||
@@ -50,4 +50,4 @@
|
|||||||
#define FUSB302_IRQ_Pin BIT(5)
|
#define FUSB302_IRQ_Pin BIT(5)
|
||||||
#define FUSB302_IRQ_GPIO_Port GPIOB
|
#define FUSB302_IRQ_GPIO_Port GPIOB
|
||||||
|
|
||||||
#endif /* BSP_MINIWARE_PINS_H_ */
|
#endif /* BSP_PINE64_PINS_H_ */
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
* Author: Ben V. Brown
|
* Author: Ben V. Brown
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SETUP_H_
|
#ifndef PINE_SETUP_H_
|
||||||
#define SETUP_H_
|
#define PINE_SETUP_H_
|
||||||
#include "gd32vf103_libopt.h"
|
#include "gd32vf103_libopt.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
@@ -21,4 +21,4 @@ void setupFUSBIRQ();
|
|||||||
#endif
|
#endif
|
||||||
extern const uint8_t holdoffTicks;
|
extern const uint8_t holdoffTicks;
|
||||||
extern const uint8_t tempMeasureTicks;
|
extern const uint8_t tempMeasureTicks;
|
||||||
#endif /* SETUP_H_ */
|
#endif /* PINE_SETUP_H_ */
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
* Author: Ralim
|
* Author: Ralim
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BSP_MINIWARE_UNITSETTINGS_H_
|
#ifndef BSP_PINE64_UNITSETTINGS_H_
|
||||||
#define BSP_MINIWARE_UNITSETTINGS_H_
|
#define BSP_PINE64_UNITSETTINGS_H_
|
||||||
|
|
||||||
#endif /* BSP_MINIWARE_UNITSETTINGS_H_ */
|
#endif /* BSP_PINE64_UNITSETTINGS_H_ */
|
||||||
|
|||||||
@@ -749,7 +749,7 @@ void showWarnings() {
|
|||||||
// In this case though, we dont want to nag the user _too_ much
|
// In this case though, we dont want to nag the user _too_ much
|
||||||
// So only show first 2 times
|
// So only show first 2 times
|
||||||
while (DetectedAccelerometerVersion == ACCELEROMETERS_SCANNING) {
|
while (DetectedAccelerometerVersion == ACCELEROMETERS_SCANNING) {
|
||||||
osDelay(1);
|
osDelay(5);
|
||||||
}
|
}
|
||||||
// Display alert if accelerometer is not detected
|
// Display alert if accelerometer is not detected
|
||||||
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) {
|
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) {
|
||||||
@@ -800,7 +800,6 @@ void startGUITask(void const *argument __unused) {
|
|||||||
ButtonState buttons = getButtonState();
|
ButtonState buttons = getButtonState();
|
||||||
if (buttons)
|
if (buttons)
|
||||||
ticks = xTaskGetTickCount(); // make timeout now so we will exit
|
ticks = xTaskGetTickCount(); // make timeout now so we will exit
|
||||||
OLED::refresh();
|
|
||||||
GUIDelay();
|
GUIDelay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "LIS2DH12.hpp"
|
#include "LIS2DH12.hpp"
|
||||||
#include "MMA8652FC.hpp"
|
#include "MMA8652FC.hpp"
|
||||||
#include "MSA301.h"
|
#include "MSA301.h"
|
||||||
|
#include "Model_Config.h"
|
||||||
#include "QC3.h"
|
#include "QC3.h"
|
||||||
#include "SC7A20.hpp"
|
#include "SC7A20.hpp"
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
@@ -25,8 +26,9 @@
|
|||||||
#define MOVFilter 8
|
#define MOVFilter 8
|
||||||
uint8_t accelInit = 0;
|
uint8_t accelInit = 0;
|
||||||
TickType_t lastMovementTime = 0;
|
TickType_t lastMovementTime = 0;
|
||||||
|
|
||||||
void detectAccelerometerVersion() {
|
void detectAccelerometerVersion() {
|
||||||
DetectedAccelerometerVersion = 99;
|
DetectedAccelerometerVersion = ACCELEROMETERS_SCANNING;
|
||||||
#ifdef ACCEL_MMA
|
#ifdef ACCEL_MMA
|
||||||
if (MMA8652FC::detect()) {
|
if (MMA8652FC::detect()) {
|
||||||
if (MMA8652FC::initalize()) {
|
if (MMA8652FC::initalize()) {
|
||||||
@@ -44,7 +46,7 @@ void detectAccelerometerVersion() {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef ACCEL_BMA
|
#ifdef ACCEL_BMA
|
||||||
if (BMA223::detect()) {
|
if (BMA223::detect()) {
|
||||||
// Setup the ST Accelerometer
|
// Setup the BMA223 Accelerometer
|
||||||
if (BMA223::initalize()) {
|
if (BMA223::initalize()) {
|
||||||
DetectedAccelerometerVersion = 3;
|
DetectedAccelerometerVersion = 3;
|
||||||
}
|
}
|
||||||
@@ -69,6 +71,7 @@ void detectAccelerometerVersion() {
|
|||||||
{
|
{
|
||||||
// disable imu sensitivity
|
// disable imu sensitivity
|
||||||
systemSettings.sensitivity = 0;
|
systemSettings.sensitivity = 0;
|
||||||
|
DetectedAccelerometerVersion = NO_DETECTED_ACCELEROMETER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) {
|
inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) {
|
||||||
@@ -107,6 +110,7 @@ inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
void startMOVTask(void const *argument __unused) {
|
void startMOVTask(void const *argument __unused) {
|
||||||
|
osDelay(TICKS_100MS / 5);// This is here as the BMA doesnt start up instantly and can wedge the I2C bus if probed too fast after boot
|
||||||
detectAccelerometerVersion();
|
detectAccelerometerVersion();
|
||||||
osDelay(TICKS_100MS / 2); // wait ~50ms for setup of accel to finalise
|
osDelay(TICKS_100MS / 2); // wait ~50ms for setup of accel to finalise
|
||||||
lastMovementTime = 0;
|
lastMovementTime = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user