MPU-9250 with Kalman Filter
Dependencies: ADXL362-helloworld MPU9250_SPI mbed
Fork of ADXL362-helloworld by
main.cpp
- Committer:
- mfurukawa
- Date:
- 2016-05-23
- Revision:
- 3:07aa20aa678d
- Parent:
- 2:9ef7a594159c
- Child:
- 4:5a9aa5ae928a
File content as of revision 3:07aa20aa678d:
/**
* Masahiro FURUKAWA - m.furukawa@ist.osaka-u.ac.jp
*
* May 23, 2016
*
* LDXL362 Acceleration Sensor (Extended to Ch1 ~ Ch3)
*
**/
#include "mbed.h"
#include "ADXL362.h"
Serial pc(USBTX, USBRX);
/*
~CS (Chip Select) p8
MOSI (Master Out Slave In) p5
MISO (Master In Slave Out p6
SCK (Serial Clock) p7
*/
int main() {
pc.baud(115200);
DigitalOut *Ch1, *Ch2, *Ch3;
Ch1 = new DigitalOut(p8);
Ch2 = new DigitalOut(p9);
Ch3 = new DigitalOut(p10);
*Ch1 = true;
*Ch2 = true;
*Ch3 = true;
ADXL362 adxl362(Ch2, p5, p6, p7);
// we need to wait at least 500ms after ADXL362 reset
adxl362.set_cs_pin(Ch1); adxl362.reset(); wait_ms(600); adxl362.set_mode(ADXL362::MEASUREMENT);
adxl362.set_cs_pin(Ch2); adxl362.reset(); wait_ms(600); adxl362.set_mode(ADXL362::MEASUREMENT);
adxl362.set_cs_pin(Ch3); adxl362.reset(); wait_ms(600); adxl362.set_mode(ADXL362::MEASUREMENT);
uint8_t x,y,z;
uint64_t t1, t2, t3;
while(1) {
x = adxl362.scanx_u8();
y = adxl362.scany_u8();
z = adxl362.scanz_u8();
adxl362.set_cs_pin(Ch1); t1 = adxl362.scan();
adxl362.set_cs_pin(Ch2); t2 = adxl362.scan();
adxl362.set_cs_pin(Ch3); t3 = adxl362.scan();
printf("x = %02x y = %02x z = %02x %04x %04x %04x %04x %04x %04x %04x %04x %04x\r\n",x,y,z,
static_cast<uint16_t>(0xFFFF&(t1>>48)),
static_cast<uint16_t>(0xFFFF&(t1>>32)),
static_cast<uint16_t>(0xFFFF&(t1>>16)),
static_cast<uint16_t>(0xFFFF&(t2>>48)),
static_cast<uint16_t>(0xFFFF&(t2>>32)),
static_cast<uint16_t>(0xFFFF&(t2>>16)),
static_cast<uint16_t>(0xFFFF&(t3>>48)),
static_cast<uint16_t>(0xFFFF&(t3>>32)),
static_cast<uint16_t>(0xFFFF&(t3>>16))
);
wait_ms(1);
}
}
Masahiro Furukawa
