8 // ********************************************************
9 // This tests data transfer between two I2C interfaces on
10 // the same chip, one configured as master, the other as
11 // slave. Works on the LPC1768 mbed.
16 // pull-up resistors on both lines
17 // ********************************************************
19 I2CSlave slave(p9, p10);
24 char sent = 'T', received;
26 master.frequency(FREQ);
27 slave.frequency(FREQ);
30 // First transfer: master to slave
34 if(slave.receive() != I2CSlave::WriteAddressed)
36 notify_completion(false);
39 slave.read(&received, 1);
42 notify_completion(false);
47 // Second transfer: slave to master
49 master.write(ADDR | 1);
50 if(slave.receive() != I2CSlave::ReadAddressed)
52 notify_completion(false);
55 slave.write(received);
56 received = master.read(0);
58 notify_completion(received == sent);