Daniel Kramnik
/
dentist_servo_pwm_passthrough
dentist hub
main.cpp@0:6864ada7bb1a, 2016-03-19 (annotated)
- Committer:
- kramnik
- Date:
- Sat Mar 19 23:00:14 2016 +0000
- Revision:
- 0:6864ada7bb1a
rev1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |