Motion Processing Library adapted to mbed
Dependents: openwear-lifelogger-example
mpu_hal.c
- Committer:
- janekm
- Date:
- 2014-09-16
- Revision:
- 1:6221b0518f94
- Parent:
- 0:61a7cadab29e
File content as of revision 1:6221b0518f94:
#include "mpu_hal.h" #include "i2c_api.h" #include "wait_api.h" #include "us_ticker_api.h" i2c_t* mpu_i2c_dev; int mpu_i2c_write(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char const *data) { if (i2c_byte_write(mpu_i2c_dev, (slave_addr<<1))==0) return -1; if (i2c_byte_write(mpu_i2c_dev, reg_addr)==0) return -1; for(int i = 0; i < length; i++) { if (i2c_byte_write(mpu_i2c_dev, data[i])==0) return -1; } return 0; } int mpu_i2c_read(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char *data) { if (i2c_byte_write(mpu_i2c_dev, (slave_addr<<1)|0x01)) return -1; if (i2c_byte_write(mpu_i2c_dev, reg_addr)) return -1; for(int i = 0; i < (length-1); i++) { data[i] = i2c_byte_read(mpu_i2c_dev, 0); } data[length-1] = i2c_byte_read(mpu_i2c_dev, 1); return 0; } int get_ms(unsigned long* timestamp) { *timestamp = (us_ticker_read() / 1000); return *timestamp; } #define delay_ms wait_ms #define log_i(...) do {} while (0) #define log_e(...) do {} while (0) #define min(a,b) ((a<b)?a:b)