dentist hub

Dependencies:   mbed

Committer:
kramnik
Date:
Sat Mar 19 23:00:14 2016 +0000
Revision:
0:6864ada7bb1a
rev1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kramnik 0:6864ada7bb1a 1 #include "mbed.h"
kramnik 0:6864ada7bb1a 2
kramnik 0:6864ada7bb1a 3 DigitalOut myled(LED1);
kramnik 0:6864ada7bb1a 4
kramnik 0:6864ada7bb1a 5 DigitalOut t_out_0( PA_2 );
kramnik 0:6864ada7bb1a 6 DigitalOut t_out_1( PA_3 );
kramnik 0:6864ada7bb1a 7 DigitalOut t_out_2( PB_13 );
kramnik 0:6864ada7bb1a 8 DigitalOut t_out_3( PA_10 );
kramnik 0:6864ada7bb1a 9 DigitalOut t_out_4( PA_9 );
kramnik 0:6864ada7bb1a 10 DigitalOut t_out_5( PA_8 );
kramnik 0:6864ada7bb1a 11
kramnik 0:6864ada7bb1a 12 DigitalIn rx_0( PC_9 );
kramnik 0:6864ada7bb1a 13 DigitalIn rx_1( PC_8 );
kramnik 0:6864ada7bb1a 14 DigitalIn rx_2( PB_6 );
kramnik 0:6864ada7bb1a 15 DigitalIn rx_3( PB_4 );
kramnik 0:6864ada7bb1a 16 DigitalIn rx_4( PB_5 );
kramnik 0:6864ada7bb1a 17 DigitalIn rx_5( PB_7 );
kramnik 0:6864ada7bb1a 18
kramnik 0:6864ada7bb1a 19 I2C i2c(PB_9, PB_8);
kramnik 0:6864ada7bb1a 20 const int addr = 0x10; // Arduino addr. 0x08 is left-shifted by 1 to get 0x10
kramnik 0:6864ada7bb1a 21
kramnik 0:6864ada7bb1a 22 Serial pc( SERIAL_TX, SERIAL_RX );
kramnik 0:6864ada7bb1a 23
kramnik 0:6864ada7bb1a 24 int main() {
kramnik 0:6864ada7bb1a 25
kramnik 0:6864ada7bb1a 26 rx_0.mode( PullDown );
kramnik 0:6864ada7bb1a 27 rx_1.mode( PullDown );
kramnik 0:6864ada7bb1a 28 rx_2.mode( PullDown );
kramnik 0:6864ada7bb1a 29 rx_3.mode( PullDown );
kramnik 0:6864ada7bb1a 30 rx_4.mode( PullDown );
kramnik 0:6864ada7bb1a 31 rx_5.mode( PullDown );
kramnik 0:6864ada7bb1a 32
kramnik 0:6864ada7bb1a 33 char i2c_out[1];
kramnik 0:6864ada7bb1a 34 i2c_out[0] = 0xDD;
kramnik 0:6864ada7bb1a 35 char i2c_in[1];
kramnik 0:6864ada7bb1a 36 i2c_in[0] = 0x00;
kramnik 0:6864ada7bb1a 37
kramnik 0:6864ada7bb1a 38 myled = 0;
kramnik 0:6864ada7bb1a 39 while(1) {
kramnik 0:6864ada7bb1a 40
kramnik 0:6864ada7bb1a 41 int ret = i2c.write(addr, i2c_out, 1);
kramnik 0:6864ada7bb1a 42 pc.printf( "Write exit code: %d \r\n", ret );
kramnik 0:6864ada7bb1a 43 pc.printf( "Written byte: 0x%02X \r\n", i2c_out[0] );
kramnik 0:6864ada7bb1a 44
kramnik 0:6864ada7bb1a 45 t_out_0.write( rx_0.read() );
kramnik 0:6864ada7bb1a 46 t_out_1.write( rx_1.read() );
kramnik 0:6864ada7bb1a 47 t_out_2.write( rx_2.read() );
kramnik 0:6864ada7bb1a 48 t_out_3.write( rx_3.read() );
kramnik 0:6864ada7bb1a 49 t_out_4.write( rx_4.read() );
kramnik 0:6864ada7bb1a 50 t_out_5.write( rx_5.read() );
kramnik 0:6864ada7bb1a 51
kramnik 0:6864ada7bb1a 52 //wait( 0.5 );
kramnik 0:6864ada7bb1a 53
kramnik 0:6864ada7bb1a 54 int loopback = i2c.read(addr, i2c_in, 1);
kramnik 0:6864ada7bb1a 55 pc.printf( "Read byte: 0x%02X \r\n\n", i2c_in[0] );
kramnik 0:6864ada7bb1a 56
kramnik 0:6864ada7bb1a 57 if( i2c_in[0] == i2c_out[0] ) {
kramnik 0:6864ada7bb1a 58 myled = 1;
kramnik 0:6864ada7bb1a 59 }
kramnik 0:6864ada7bb1a 60 }
kramnik 0:6864ada7bb1a 61 }