1
0
forked from me/IronOS
Files
IronOS/workspace/TS100/Core/Drivers/BMA223.hpp
2020-12-11 19:11:23 +11:00

40 lines
793 B
C++
Executable File

/*
* BMA223.hpp
*
* Created on: 18 Sep. 2020
* Author: Ralim
*/
#ifndef CORE_DRIVERS_BMA223_HPP_
#define CORE_DRIVERS_BMA223_HPP_
#include "I2C_Wrapper.hpp"
#include "BSP.h"
#include "BMA223_defines.h"
class BMA223 {
public:
static bool detect();
static bool initalize();
//1 = rh, 2,=lh, 8=flat
static Orientation getOrientation() {
uint8_t val = FRToSI2C::I2C_RegisterRead(BMA223_ADDRESS,
BMA223_INT_STATUS_3);
val >>= 4; //we dont need high values
val &= 0b11;
if(val &0b10){
return ORIENTATION_FLAT;
}else{
return static_cast<Orientation>(!val);
}
//0 = rhs
//1 =lhs
//2 & 3 == ignore
}
static void getAxisReadings(int16_t& x, int16_t& y, int16_t& z);
private:
};
#endif /* CORE_DRIVERS_BMA223_HPP_ */