Marek Trojan
/
_8_KL46_M_simple_write
program for I2C master device
Fork of I2C_HelloWorld_Mbed by
main.cpp
- Committer:
- marcus255
- Date:
- 2015-12-01
- Revision:
- 4:1ec553356dcc
- Parent:
- 3:df6232c70efd
- Child:
- 5:8dc6d7d81250
File content as of revision 4:1ec553356dcc:
// I2C Master #include "main.h" int main() { init(); while (1) {} } void writeNBytes(){ //writing to slave int write_ack = i2c.write(SLAVE_ADDR, data, 100); if (!write_ack) { i2c.stop(); pc.printf("<Writing> OK\n\r"); } else pc.printf("<Writing> Error\n\r"); wait_ms(20); i2c.stop(); /* //reading from slave char fromSlave[DATA_SIZE]; int read_ack = i2c.read(SLAVE_ADDR, fromSlave, DATA_SIZE); if (!read_ack) pc.printf("<Reading> OK\n\r"); else pc.printf("<Reading> Error\n\r"); fromSlave[DATA_SIZE - 1] = '\0'; pc.printf("Data from Slave: %s\n\n\r", fromSlave); i2c.stop();*/ } /* void i2cReadWrite(void){ for(int a = 0; a < MSG_SIZE; a++) fromSlave[a] = 0; int ack = i2c.write(SLAVE_ADDR, data, strlen(data)); if (!ack) pc.printf("data send to slave\n\r"); else pc.printf("NACK!\n\r"); wait(0.1); int read_ack = i2c.read(SLAVE_ADDR, fromSlave, MSG_SIZE - 1); if (!read_ack) pc.printf("data received from slave\n\r"); else pc.printf("data not received\n\r"); pc.printf("Data from Slave: %s\n\r", fromSlave); for(int y = 0; y < 32; y++) fromSlave[y]='x'; }*/ void init(void){ i2c.frequency(100000); i2c_ticker.attach(&writeNBytes, 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; }