mbed library sources for GR-PEACH rev.B.
Fork of mbed-src by
Diff: targets/hal/TARGET_Freescale/TARGET_KLXX/i2c_api.c
- Revision:
- 178:a873352662d8
- Parent:
- 82:0b31dbcd4769
- Child:
- 182:242346c42295
diff -r d57c40a064c8 -r a873352662d8 targets/hal/TARGET_Freescale/TARGET_KLXX/i2c_api.c --- a/targets/hal/TARGET_Freescale/TARGET_KLXX/i2c_api.c Thu May 01 13:00:08 2014 +0100 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/i2c_api.c Wed May 07 09:00:07 2014 +0100 @@ -37,8 +37,6 @@ 2304, 2560, 3072, 3840 }; -static uint8_t first_read; - void i2c_init(i2c_t *obj, PinName sda, PinName scl) { // determine the I2C to use @@ -63,8 +61,6 @@ pinmap_pinout(sda, PinMap_I2C_SDA); pinmap_pinout(scl, PinMap_I2C_SCL); - - first_read = 1; } int i2c_start(i2c_t *obj) { @@ -84,7 +80,6 @@ obj->i2c->C1 |= I2C_C1_MST_MASK; obj->i2c->C1 |= I2C_C1_TX_MASK; } - first_read = 1; return 0; } @@ -98,7 +93,6 @@ // This wait is also included on the samples // code provided with the freedom board for (n = 0; n < 100; n++) __NOP(); - first_read = 1; return 0; } @@ -284,26 +278,15 @@ // set rx mode obj->i2c->C1 &= ~I2C_C1_TX_MASK; - if(first_read) { - // first dummy read - i2c_do_read(obj, &data, 0); - first_read = 0; - } - - if (last) { - // set tx mode - obj->i2c->C1 |= I2C_C1_TX_MASK; - return obj->i2c->D; - } - + // Setup read i2c_do_read(obj, &data, last); - - return data; + + // set tx mode + obj->i2c->C1 |= I2C_C1_TX_MASK; + return obj->i2c->D; } int i2c_byte_write(i2c_t *obj, int data) { - first_read = 1; - // set tx mode obj->i2c->C1 |= I2C_C1_TX_MASK;