/* * BMA223.hpp * * Created on: 18 Sep. 2020 * Author: Ralim */ #ifndef CORE_DRIVERS_BMA223_HPP_ #define CORE_DRIVERS_BMA223_HPP_ #include "BMA223_defines.h" #include "BSP.h" #include "I2C_Wrapper.hpp" 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(!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_ */