diff --git a/src/itg3200/itg3200.cxx b/src/itg3200/itg3200.cxx index c0258124..90ea9d91 100644 --- a/src/itg3200/itg3200.cxx +++ b/src/itg3200/itg3200.cxx @@ -23,6 +23,8 @@ */ #include +#include +#include #include #include "math.h" #include "itg3200.h" @@ -64,7 +66,14 @@ using namespace upm; Itg3200::Itg3200(int bus) : m_i2c(bus) { - //reset chip + //init bus and reset chip + if ( !(m_i2c = mraa_i2c_init(bus)) ) + { + throw std::invalid_argument(std::string(__FUNCTION__) + + ": mraa_i2c_init() failed"); + return; + } + m_i2c.address(ITG3200_I2C_ADDR); m_buffer[0] = ITG3200_PWR_MGM; m_buffer[1] = ITG3200_RESET;