Marek Trojan
/
_8_KL46_M_simple_write
program for I2C master device
Fork of I2C_HelloWorld_Mbed by
Diff: main.cpp
- Revision:
- 5:8dc6d7d81250
- Parent:
- 4:1ec553356dcc
- Child:
- 6:6ee93a0f8d24
--- a/main.cpp Tue Dec 01 22:16:18 2015 +0000 +++ b/main.cpp Sun Dec 06 21:24:01 2015 +0000 @@ -6,29 +6,37 @@ while (1) {} } -void writeNBytes(){ - //writing to slave - int write_ack = i2c.write(SLAVE_ADDR, data, 100); +void write_and_read(){ + //write_data(); + wait_ms(20); + read_data(); +} + +void write_data(){ + //writing to slave + int write_ack = i2c.write(SLAVE_ADDR, data, DATA_SIZE-1); if (!write_ack) { i2c.stop(); pc.printf("<Writing> OK\n\r"); } else pc.printf("<Writing> Error\n\r"); - wait_ms(20); - i2c.stop(); - /* + //wait_ms(20); +} + +void read_data(){ //reading from slave char fromSlave[DATA_SIZE]; - int read_ack = i2c.read(SLAVE_ADDR, fromSlave, DATA_SIZE); - if (!read_ack) + int read_ack = i2c.read(SLAVE_ADDR, fromSlave, DATA_SIZE - 1); + if (!read_ack) { pc.printf("<Reading> OK\n\r"); + fromSlave[DATA_SIZE - 1] = '\0'; + pc.printf("Data from Slave: %s\n\n\r", fromSlave); + } else - pc.printf("<Reading> Error\n\r"); - fromSlave[DATA_SIZE - 1] = '\0'; - pc.printf("Data from Slave: %s\n\n\r", fromSlave); - i2c.stop();*/ -} + pc.printf("<Reading> Error\n\r"); +} + /* void i2cReadWrite(void){ for(int a = 0; a < MSG_SIZE; a++) fromSlave[a] = 0; @@ -54,9 +62,10 @@ void init(void){ i2c.frequency(100000); - i2c_ticker.attach(&writeNBytes, 2.0f); + i2c_ticker.attach(&write_and_read, 2.0f); pc.baud(921600); pc.printf("Master says: Hello World!\n\r"); for (uint8_t i = 0; i < DATA_SIZE; i++) - data[i] = i; + data[i] = i+65; + data[0]=0; } \ No newline at end of file