Motion Processing Library adapted to mbed

Dependents:   openwear-lifelogger-example

Committer:
janekm
Date:
Tue Sep 16 22:42:12 2014 +0000
Revision:
1:6221b0518f94
Parent:
0:61a7cadab29e
I forgot

Who changed what in which revision?

UserRevisionLine numberNew contents of line
janekm 0:61a7cadab29e 1 #include "mpu_hal.h"
janekm 0:61a7cadab29e 2
janekm 0:61a7cadab29e 3 #include "i2c_api.h"
janekm 0:61a7cadab29e 4 #include "wait_api.h"
janekm 0:61a7cadab29e 5 #include "us_ticker_api.h"
janekm 0:61a7cadab29e 6
janekm 0:61a7cadab29e 7 i2c_t* mpu_i2c_dev;
janekm 0:61a7cadab29e 8
janekm 0:61a7cadab29e 9 int mpu_i2c_write(unsigned char slave_addr, unsigned char reg_addr,
janekm 0:61a7cadab29e 10 unsigned char length, unsigned char const *data)
janekm 0:61a7cadab29e 11 {
janekm 0:61a7cadab29e 12 if (i2c_byte_write(mpu_i2c_dev, (slave_addr<<1))==0) return -1;
janekm 0:61a7cadab29e 13 if (i2c_byte_write(mpu_i2c_dev, reg_addr)==0) return -1;
janekm 0:61a7cadab29e 14 for(int i = 0; i < length; i++) {
janekm 0:61a7cadab29e 15 if (i2c_byte_write(mpu_i2c_dev, data[i])==0) return -1;
janekm 0:61a7cadab29e 16 }
janekm 0:61a7cadab29e 17 return 0;
janekm 0:61a7cadab29e 18 }
janekm 0:61a7cadab29e 19 int mpu_i2c_read(unsigned char slave_addr, unsigned char reg_addr,
janekm 0:61a7cadab29e 20 unsigned char length, unsigned char *data)
janekm 0:61a7cadab29e 21 {
janekm 0:61a7cadab29e 22 if (i2c_byte_write(mpu_i2c_dev, (slave_addr<<1)|0x01)) return -1;
janekm 0:61a7cadab29e 23 if (i2c_byte_write(mpu_i2c_dev, reg_addr)) return -1;
janekm 0:61a7cadab29e 24 for(int i = 0; i < (length-1); i++) {
janekm 0:61a7cadab29e 25 data[i] = i2c_byte_read(mpu_i2c_dev, 0);
janekm 0:61a7cadab29e 26 }
janekm 0:61a7cadab29e 27 data[length-1] = i2c_byte_read(mpu_i2c_dev, 1);
janekm 0:61a7cadab29e 28 return 0;
janekm 0:61a7cadab29e 29 }
janekm 0:61a7cadab29e 30
janekm 1:6221b0518f94 31 int get_ms(unsigned long* timestamp)
janekm 0:61a7cadab29e 32 {
janekm 0:61a7cadab29e 33 *timestamp = (us_ticker_read() / 1000);
janekm 0:61a7cadab29e 34 return *timestamp;
janekm 0:61a7cadab29e 35 }
janekm 0:61a7cadab29e 36
janekm 0:61a7cadab29e 37 #define delay_ms wait_ms
janekm 0:61a7cadab29e 38
janekm 0:61a7cadab29e 39 #define log_i(...) do {} while (0)
janekm 0:61a7cadab29e 40 #define log_e(...) do {} while (0)
janekm 0:61a7cadab29e 41 #define min(a,b) ((a<b)?a:b)