Hover!( Microchip MGC3130 ) library. Now, it is development version. http://www.hoverlabs.co/#hover https://www.switch-science.com/catalog/2124/
Diff: MjHover.cpp
- Revision:
- 5:bd26aba87b9b
- Parent:
- 4:11a94d34ab58
- Child:
- 6:8d68ac1bab97
diff -r 11a94d34ab58 -r bd26aba87b9b MjHover.cpp --- a/MjHover.cpp Fri Apr 03 12:29:08 2015 +0000 +++ b/MjHover.cpp Fri Apr 03 12:51:03 2015 +0000 @@ -2,36 +2,23 @@ namespace matsujirushi { -MjHover::MjHover(I2C* i2c, uint8_t address, DigitalInOut* ts, DigitalInOut* reset_n) +MjHover::MjHover(I2C* i2c, uint8_t address, DigitalInOut* ts_n, DigitalInOut* reset_n) : MjHoverBase(i2c, address, ts_n, reset_n) { - this->i2c = i2c; - this->address = address & 0xfe; - this->ts = ts; - this->reset_n = reset_n; } void MjHover::begin() { - this->ts->input(); - this->reset_n->output(); - this->reset_n->write(0); - wait_us(100); - this->reset_n->input(); - wait_ms(1000); + this->Reset(); } void MjHover::setRelease() { - this->ts->input(); - wait_us(100); } bool MjHover::getStatus() { - if (this->ts->read() == 0) + if (this->DataAvailable()) { - this->ts->output(); - this->ts->write(0); return false; } return true; @@ -39,22 +26,19 @@ uint8_t MjHover::getEvent() { - this->i2c->start(); - this->i2c->write(this->address | 1); - uint8_t size = this->i2c->read(1); - uint8_t buffer[255]; - buffer[0] = size; - for (int i = 1; i < size; i++) + uint8_t id; + uint8_t payload[255 - 4]; + uint8_t readPayloadSize; + if (!ReadMessage(&id, payload, sizeof (payload), &readPayloadSize)) { - buffer[i] = this->i2c->read(i < size - 1 ? 1 : 0); + return 0x00; } - this->i2c->stop(); uint8_t data; uint8_t event; - for (int c = 0; c < 18; c++) + for (int c = 4; c < 18; c++) { - data = buffer[c]; + data = payload[c - 4]; if (c == 10 && data > 1) {