mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/driver-bmi088.git
synced 2025-06-10 18:45:59 +00:00
driver cleanup
This commit is contained in:
parent
67748f9e1a
commit
ac1479739d
@ -1,7 +1,10 @@
|
|||||||
#ifndef STA_DRIVERS_BMI088_HPP
|
#ifndef STA_DRIVERS_BMI088_HPP
|
||||||
#define STA_DRIVERS_BMI088_HPP
|
#define STA_DRIVERS_BMI088_HPP
|
||||||
|
|
||||||
#include <sta/devices/stm32/bus/spi.hpp>
|
//#include <sta/devices/stm32/bus/spi.hpp>
|
||||||
|
//#include <sta/devices/stm32/bus/i2c.hpp>
|
||||||
|
#include <sta/bus/spi/device.hpp>
|
||||||
|
#include <sta/bus/i2c/device.hpp>
|
||||||
|
|
||||||
#include <sta/drivers/bmi088_defs.hpp>
|
#include <sta/drivers/bmi088_defs.hpp>
|
||||||
|
|
||||||
@ -18,22 +21,22 @@ namespace sta
|
|||||||
};
|
};
|
||||||
enum GyroRange
|
enum GyroRange
|
||||||
{
|
{
|
||||||
TWOTHOUSAND = 0x00,
|
_2000 = 0x00,
|
||||||
ONETHOUSAND = 0x01,
|
_1000 = 0x01,
|
||||||
FIVEHUNDRED = 0x02,
|
_500 = 0x02,
|
||||||
TWOFIFTY = 0x03,
|
_250 = 0x03,
|
||||||
ONETWENTYFIVE = 0x04
|
_125 = 0x04
|
||||||
};
|
};
|
||||||
enum GyroBandwidth
|
enum GyroBandwidth
|
||||||
{
|
{
|
||||||
TWOTHOUSAND_FIVETHIRTYTWO = 0x00,
|
_2000_532 = 0x00,
|
||||||
TWOTHOUSAND_TWOTHIRTY = 0x01,
|
_2000_230 = 0x01,
|
||||||
ONETHOUSAND_ONESIXTEEN = 0x02,
|
_1000_116 = 0x02,
|
||||||
FOURHUNDRED_FORTYSEVEN = 0x03,
|
_400_47 = 0x03,
|
||||||
TWOHUNDRED_TWENTYTHREE = 0x04,
|
_200_23 = 0x04,
|
||||||
ONEHUNDRED_TWELVE = 0x05,
|
_100_12 = 0x05,
|
||||||
TWOHUNDRED_SIXTYFOUR = 0x06,
|
_200_64 = 0x06,
|
||||||
ONEHUNDRED_THIRTYTWO = 0x07
|
_100_32 = 0x07
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AccelMode
|
enum AccelMode
|
||||||
@ -43,10 +46,10 @@ namespace sta
|
|||||||
};
|
};
|
||||||
enum AccelRange
|
enum AccelRange
|
||||||
{
|
{
|
||||||
THREEG = 0x00,
|
_3G = 0x00,
|
||||||
SIXG = 0x01,
|
_6G = 0x01,
|
||||||
TWELVEG = 0x02,
|
_12G = 0x02,
|
||||||
TWENTYFOURG = 0x03
|
_24G = 0x03
|
||||||
};
|
};
|
||||||
enum AccelBandwidth
|
enum AccelBandwidth
|
||||||
{
|
{
|
||||||
@ -56,14 +59,14 @@ namespace sta
|
|||||||
};
|
};
|
||||||
enum AccelODR
|
enum AccelODR
|
||||||
{
|
{
|
||||||
TWELVE_FIVE = 0x05,
|
_12_5 = 0x05,
|
||||||
TWENTYFIVE = 0x06,
|
_25 = 0x06,
|
||||||
FIFTY = 0x07,
|
_50 = 0x07,
|
||||||
ONEHUNDRED = 0x08,
|
_100 = 0x08,
|
||||||
TWOHUNDRED = 0x09,
|
_200 = 0x09,
|
||||||
FOURHUNDRED = 0x0A,
|
_400 = 0x0A,
|
||||||
EIGHTHUNDRED = 0x0B,
|
_800 = 0x0B,
|
||||||
ONESIXHUNDRED = 0x0C
|
_1600 = 0x0C
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -74,7 +77,7 @@ namespace sta
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BMI088(STM32SPIDevice* gyro_device, STM32SPIDevice* accel_device);
|
BMI088(Device* gyro_device, Device* accel_device);
|
||||||
|
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
namespace sta
|
namespace sta
|
||||||
{
|
{
|
||||||
BMI088::BMI088(STM32SPIDevice* gyro_device, STM32SPIDevice* accel_device)
|
BMI088::BMI088(Device* gyro_device, Device* accel_device)
|
||||||
: gyro_device{gyro_device}, accel_device(accel_device)
|
: gyro_device{gyro_device}, accel_device(accel_device)
|
||||||
{
|
{
|
||||||
STA_ASSERT(gyro_device != nullptr);
|
STA_ASSERT(gyro_device != nullptr);
|
||||||
@ -17,15 +17,15 @@ namespace sta
|
|||||||
busRead(GYROSCOPE, BMI088_REG_GYRO_CHIP_ID, &id);
|
busRead(GYROSCOPE, BMI088_REG_GYRO_CHIP_ID, &id);
|
||||||
if(id != BMI088_GYRO_CHIP_ID) return false;
|
if(id != BMI088_GYRO_CHIP_ID) return false;
|
||||||
|
|
||||||
setGyroscopeRange(GyroRange::ONETHOUSAND);
|
setGyroscopeRange(GyroRange::_1000);
|
||||||
setGyroscopeBandwidth(GyroBandwidth::TWOHUNDRED_SIXTYFOUR);
|
setGyroscopeBandwidth(GyroBandwidth::_200_64);
|
||||||
setGyroscopeMode(GyroMode::NORMAL_AWAKE);
|
setGyroscopeMode(GyroMode::NORMAL_AWAKE);
|
||||||
|
|
||||||
busRead(ACCELEROMETER, BMI088_REG_ACC_CHIP_ID, &id);
|
busRead(ACCELEROMETER, BMI088_REG_ACC_CHIP_ID, &id);
|
||||||
if(id != BMI088_ACC_CHIP_ID) return false;
|
if(id != BMI088_ACC_CHIP_ID) return false;
|
||||||
|
|
||||||
setAccelerometerRange(AccelRange::TWENTYFOURG);
|
setAccelerometerRange(AccelRange::_24G);
|
||||||
setAccelerometerBandwidth(AccelBandwidth::NORMAL_BANDWIDTH, AccelODR::ONEHUNDRED);
|
setAccelerometerBandwidth(AccelBandwidth::NORMAL_BANDWIDTH, AccelODR::_100);
|
||||||
setAccelerometerMode(AccelMode::ON);
|
setAccelerometerMode(AccelMode::ON);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -41,19 +41,19 @@ namespace sta
|
|||||||
|
|
||||||
switch(range)
|
switch(range)
|
||||||
{
|
{
|
||||||
case TWOTHOUSAND:
|
case _2000:
|
||||||
f_gyro_range = 2000;
|
f_gyro_range = 2000;
|
||||||
break;
|
break;
|
||||||
case ONETHOUSAND:
|
case _1000:
|
||||||
f_gyro_range = 1000;
|
f_gyro_range = 1000;
|
||||||
break;
|
break;
|
||||||
case FIVEHUNDRED:
|
case _500:
|
||||||
f_gyro_range = 500;
|
f_gyro_range = 500;
|
||||||
break;
|
break;
|
||||||
case TWOFIFTY:
|
case _250:
|
||||||
f_gyro_range = 250;
|
f_gyro_range = 250;
|
||||||
break;
|
break;
|
||||||
case ONETWENTYFIVE:
|
case _125:
|
||||||
f_gyro_range = 125;
|
f_gyro_range = 125;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -102,16 +102,16 @@ namespace sta
|
|||||||
|
|
||||||
switch(range)
|
switch(range)
|
||||||
{
|
{
|
||||||
case THREEG:
|
case _3G:
|
||||||
f_accel_range = 3*9.80665;
|
f_accel_range = 3*9.80665;
|
||||||
break;
|
break;
|
||||||
case SIXG:
|
case _6G:
|
||||||
f_accel_range = 6*9.80665;
|
f_accel_range = 6*9.80665;
|
||||||
break;
|
break;
|
||||||
case TWELVEG:
|
case _12G:
|
||||||
f_accel_range = 12*9.80665;
|
f_accel_range = 12*9.80665;
|
||||||
break;
|
break;
|
||||||
case TWENTYFOURG:
|
case _24G:
|
||||||
f_accel_range = 24*9.80665;
|
f_accel_range = 24*9.80665;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user