CSSE4011_BLE_IMU IMU Seeed Tiny Ble

Dependencies:   BLE_API_Tiny_BLE MPU6050-DMP-Seeed-Tiny-BLE mbed

Committer:
flywind
Date:
Wed Jun 10 12:56:48 2015 +0000
Revision:
2:44bc61abdf33
milestone working one , yaw pitch roll update in BLE sucessfull

Who changed what in which revision?

UserRevisionLine numberNew contents of line
flywind 2:44bc61abdf33 1
flywind 2:44bc61abdf33 2 #include "i2c_api.h"
flywind 2:44bc61abdf33 3
flywind 2:44bc61abdf33 4 static i2c_t mbed_i2c_object;
flywind 2:44bc61abdf33 5
flywind 2:44bc61abdf33 6 void mbed_i2c_init(PinName sda, PinName scl)
flywind 2:44bc61abdf33 7 {
flywind 2:44bc61abdf33 8 i2c_init(&mbed_i2c_object, sda, scl);
flywind 2:44bc61abdf33 9 i2c_frequency(&mbed_i2c_object, 100000);
flywind 2:44bc61abdf33 10 }
flywind 2:44bc61abdf33 11
flywind 2:44bc61abdf33 12 int mbed_i2c_write(unsigned char slave_addr,
flywind 2:44bc61abdf33 13 unsigned char reg_addr,
flywind 2:44bc61abdf33 14 unsigned char length,
flywind 2:44bc61abdf33 15 unsigned char const *data)
flywind 2:44bc61abdf33 16 {
flywind 2:44bc61abdf33 17 int i;
flywind 2:44bc61abdf33 18 slave_addr = slave_addr << 1;
flywind 2:44bc61abdf33 19 i2c_start(&mbed_i2c_object);
flywind 2:44bc61abdf33 20 i2c_byte_write(&mbed_i2c_object, slave_addr);
flywind 2:44bc61abdf33 21 i2c_byte_write(&mbed_i2c_object, reg_addr);
flywind 2:44bc61abdf33 22 for (i = 0; i < length; i++) {
flywind 2:44bc61abdf33 23 i2c_byte_write(&mbed_i2c_object, data[i]);
flywind 2:44bc61abdf33 24 }
flywind 2:44bc61abdf33 25 i2c_stop(&mbed_i2c_object);
flywind 2:44bc61abdf33 26 return 0;
flywind 2:44bc61abdf33 27 }
flywind 2:44bc61abdf33 28
flywind 2:44bc61abdf33 29 int mbed_i2c_read(unsigned char slave_addr,
flywind 2:44bc61abdf33 30 unsigned char reg_addr,
flywind 2:44bc61abdf33 31 unsigned char length,
flywind 2:44bc61abdf33 32 unsigned char *data)
flywind 2:44bc61abdf33 33 {
flywind 2:44bc61abdf33 34 slave_addr = slave_addr << 1;
flywind 2:44bc61abdf33 35 i2c_write(&mbed_i2c_object, slave_addr, &reg_addr, 1, 0);
flywind 2:44bc61abdf33 36 return (i2c_read(&mbed_i2c_object, slave_addr, data, length, 1) == length) ? 0 : 1;
flywind 2:44bc61abdf33 37 }