![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
hi
Dependencies: FreescaleIAP mbed-rtos mbed
Diff: i2c.cpp
- Revision:
- 0:bcbd76c86cde
diff -r 000000000000 -r bcbd76c86cde i2c.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/i2c.cpp Wed Dec 16 09:06:59 2015 +0000 @@ -0,0 +1,61 @@ +#include "mbed.h" +#include "pinconfig.h" +#include "rtos.h" +#include "i2c.h" +DigitalOut irpt_2_slv(PIN67); //I2C interrupt to CDMS +I2C master(PIN32,PIN31); +DigitalOut led1(PIN46); +DigitalOut led2(PIN95); +const int addr = 0x20; //slave address +char telecommand[tc_len]; +char telemetry[tm_len]; +Timer test; +Timer t_read; +bool write_ack = true; +bool read_ack = true; + +int count = 0; + +void FCTN_I2C_WRITE(char *data) +{ + irpt_2_slv = 1; + //t.start(); + write_ack = master.write(addr|0x00,data,tc_len); + //t.stop(); + //if(write_ack == 0) + //pc.printf("\n\r data not sent \n"); + +if (write_ack == 1) + { + led2 = 1; + printf("\n\r data not sent \n"); + led2 = 0; + } + irpt_2_slv = 0; + //pc.printf("\n\r %d \n",t.read_us()); + //t.reset(); +} + + +void FCTN_I2C_READ(char *data) +{ + irpt_2_slv = 1; + t_read.start(); + read_ack = master.read(addr|1,data,tm_len); + t_read.stop(); + + //if(read_ack == 0) + // printf("\n\rData received from BAE %s \n",data); + if (read_ack == 1) + { + led2 = 1; + printf("\n \r data not received \n"); + led2 = 0; + } +//if(read_ack == 1) +//pc.printf("\n \r data not received \n"); + + irpt_2_slv = 0; + //printf("\n\r %d \n",t.read_us()); + //t.reset(); +} \ No newline at end of file