Added mock driver; renamed enums and fixed a bug

This commit is contained in:
dario
2024-06-27 16:22:19 +02:00
parent 67748f9e1a
commit 2e8b07509d
3 changed files with 160 additions and 52 deletions

View File

@@ -1,7 +1,7 @@
#ifndef STA_DRIVERS_BMI088_HPP
#define STA_DRIVERS_BMI088_HPP
#include <sta/devices/stm32/bus/spi.hpp>
#include <sta/bus/spi/device.hpp>
#include <sta/drivers/bmi088_defs.hpp>
@@ -12,58 +12,58 @@ namespace sta
public:
enum GyroMode
{
NORMAL_AWAKE = 0x00,
SUSPEND = 0x80,
DEEP_SUSPEND = 0x20
NORMAL_AWAKE = 0x00,
SUSPEND = 0x80,
DEEP_SUSPEND = 0x20
};
enum GyroRange
{
TWOTHOUSAND = 0x00,
ONETHOUSAND = 0x01,
FIVEHUNDRED = 0x02,
TWOFIFTY = 0x03,
ONETWENTYFIVE = 0x04
_2000 = 0x00,
_1000 = 0x01,
_500 = 0x02,
_250 = 0x03,
_125 = 0x04
};
enum GyroBandwidth
{
TWOTHOUSAND_FIVETHIRTYTWO = 0x00,
TWOTHOUSAND_TWOTHIRTY = 0x01,
ONETHOUSAND_ONESIXTEEN = 0x02,
FOURHUNDRED_FORTYSEVEN = 0x03,
TWOHUNDRED_TWENTYTHREE = 0x04,
ONEHUNDRED_TWELVE = 0x05,
TWOHUNDRED_SIXTYFOUR = 0x06,
ONEHUNDRED_THIRTYTWO = 0x07
_2535 = 0x00,
_2230 = 0x01,
_1116 = 0x02,
_447 = 0x03,
_223 = 0x04,
_112 = 0x05,
_264 = 0x06,
_132 = 0x07
};
enum AccelMode
{
OFF = 0x00,
ON = 0x04
OFF = 0x00,
ON = 0x04
};
enum AccelRange
{
THREEG = 0x00,
SIXG = 0x01,
TWELVEG = 0x02,
TWENTYFOURG = 0x03
_3G = 0x00,
_6G = 0x01,
_12G = 0x02,
_24G = 0x03
};
enum AccelBandwidth
{
OSR4 = 0x08,
OSR2 = 0x09,
NORMAL_BANDWIDTH = 0x0A
OSR4 = 0x08,
OSR2 = 0x09,
NORMAL_BANDWIDTH = 0x0A
};
enum AccelODR
{
TWELVE_FIVE = 0x05,
TWENTYFIVE = 0x06,
FIFTY = 0x07,
ONEHUNDRED = 0x08,
TWOHUNDRED = 0x09,
FOURHUNDRED = 0x0A,
EIGHTHUNDRED = 0x0B,
ONESIXHUNDRED = 0x0C
_12_5 = 0x05,
_25 = 0x06,
_50 = 0x07,
_100 = 0x08,
_200 = 0x09,
_400 = 0x0A,
_800 = 0x0B,
_1600 = 0x0C
};
private:
@@ -74,7 +74,7 @@ namespace sta
};
public:
BMI088(STM32SPIDevice* gyro_device, STM32SPIDevice* accel_device);
BMI088(SPIDevice* gyro_device, SPIDevice* accel_device);
bool init();
@@ -97,8 +97,8 @@ namespace sta
void convertRawToActual(uint16_t* i, float* f, float f_range);
Device* gyro_device;
Device* accel_device;
SPIDevice* gyro_device;
SPIDevice* accel_device;
float f_gyro_range = 0;
float f_accel_range = 0;