diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2011-07-09 18:52:55 +0200 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2011-07-09 18:53:15 +0200 |
commit | 24d7aff6b23fae05fe859096d4a8e5ffa46f9833 (patch) | |
tree | 5db4811555bb07273911e66e36a205b2a88ba3ae /itg3200.h | |
parent | 9fcfb4a01ba104ff7058012f2f73b1be6a143d6c (diff) |
Added ITG3200 wrapper.
Diffstat (limited to 'itg3200.h')
-rw-r--r-- | itg3200.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/itg3200.h b/itg3200.h new file mode 100644 index 0000000..2e90f62 --- /dev/null +++ b/itg3200.h @@ -0,0 +1,32 @@ +#ifndef ITG3200_H +#define ITG3200_H + +#include "i2c.h" + +class ITG3200 { + private: + I2C& i2c; + + public: + int16_t x, y, z; + + ITG3200(I2C& i2c_bus) : i2c(i2c_bus) { + + } + + void init() { + i2c.write_reg(0x68, 0x3e, 0x03); // Select clock reference. + i2c.write_reg(0x68, 0x16, 0x18 | 0x02); // 2000 deg/sec range, 98 Hz bandwidth. + } + + void update() { + uint8_t buf[6]; + i2c.read_reg(0x68, 0x1d, 6, buf); + + x = (buf[0] << 8 | buf[1]) - 0; + y = (buf[2] << 8 | buf[3]) - 0; + z = (buf[4] << 8 | buf[5]) - 0; + } +}; + +#endif |