YUFEI JIANG / Mbed 2 deprecated CSSE4011_BLE_IMU

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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mbed_i2c.c Source File

mbed_i2c.c

00001 
00002 #include "i2c_api.h"
00003 
00004 static i2c_t mbed_i2c_object;
00005 
00006 void mbed_i2c_init(PinName sda, PinName scl)
00007 {
00008     i2c_init(&mbed_i2c_object, sda, scl);
00009     i2c_frequency(&mbed_i2c_object, 100000);
00010 }
00011 
00012 int mbed_i2c_write(unsigned char slave_addr,
00013                      unsigned char reg_addr,
00014                      unsigned char length,
00015                      unsigned char const *data)
00016 {
00017     int i;
00018     slave_addr = slave_addr << 1;
00019     i2c_start(&mbed_i2c_object);
00020     i2c_byte_write(&mbed_i2c_object, slave_addr);
00021     i2c_byte_write(&mbed_i2c_object, reg_addr);
00022     for (i = 0; i < length; i++) {
00023         i2c_byte_write(&mbed_i2c_object, data[i]);
00024     }
00025     i2c_stop(&mbed_i2c_object);
00026     return 0;
00027 }
00028 
00029 int mbed_i2c_read(unsigned char slave_addr,
00030                     unsigned char reg_addr,
00031                     unsigned char length,
00032                     unsigned char *data)
00033 {
00034     slave_addr = slave_addr << 1;
00035     i2c_write(&mbed_i2c_object, slave_addr, &reg_addr, 1, 0);
00036     return (i2c_read(&mbed_i2c_object, slave_addr, data, length, 1) == length) ? 0 : 1;
00037 }