I2C code testing

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by Siva ram

Committer:
shreeshas95
Date:
Fri Jan 29 19:27:28 2016 +0000
Revision:
105:5ce0337e7c15
Parent:
103:b55559925dc1
Child:
130:d5b53088270b
Changed pins from the last version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aniruddhv 52:0bd68655c651 1 #define tm_len 134
aniruddhv 52:0bd68655c651 2 #define tc_len 135
aniruddhv 52:0bd68655c651 3 #define tc_test_len 135
aniruddhv 52:0bd68655c651 4
shreeshas95 105:5ce0337e7c15 5 InterruptIn irpt_4m_slv(D3); //I2c interrupt from CDMS
shreeshas95 105:5ce0337e7c15 6 DigitalOut irpt_2_slv(D4); //I2C interrupt to CDMS
shreeshas95 105:5ce0337e7c15 7 //I2C master(PIN32,PIN31);
shreeshas95 105:5ce0337e7c15 8 I2C master(PTC9,PTC8);
ee12b079 96:4ca92f9775e0 9 //DigitalOut led1(PIN46);
ee12b079 96:4ca92f9775e0 10 //DigitalOut led2(PIN95);
aniruddhv 52:0bd68655c651 11 const int addr = 0x20; //slave address
aniruddhv 52:0bd68655c651 12 char telecommand[tc_len];
aniruddhv 52:0bd68655c651 13 char telemetry[tm_len];
ee12b079 96:4ca92f9775e0 14 //Timer test;
ee12b079 96:4ca92f9775e0 15 //Timer t_read;
aniruddhv 52:0bd68655c651 16 bool write_ack = true;
aniruddhv 52:0bd68655c651 17 bool read_ack = true;
aniruddhv 52:0bd68655c651 18
aniruddhv 52:0bd68655c651 19 int count = 0;
aniruddhv 52:0bd68655c651 20
aniruddhv 52:0bd68655c651 21 void FCTN_I2C_WRITE(char *data)
aniruddhv 52:0bd68655c651 22 {
aniruddhv 52:0bd68655c651 23 irpt_2_slv = 1;
aniruddhv 52:0bd68655c651 24 //t.start();
aniruddhv 52:0bd68655c651 25 write_ack = master.write(addr|0x00,data,tc_len);
aniruddhv 52:0bd68655c651 26 //t.stop();
aniruddhv 52:0bd68655c651 27 //if(write_ack == 0)
aniruddhv 69:20f09a0c3fd2 28 //gPC.printf("\n\r data not sent \n");
aniruddhv 52:0bd68655c651 29
aniruddhv 52:0bd68655c651 30 if (write_ack == 1)
aniruddhv 52:0bd68655c651 31 {
ee12b079 96:4ca92f9775e0 32 // led2 = 1;
aniruddhv 69:20f09a0c3fd2 33 //gPC.printf("\n\r data not sent \n");
ee12b079 96:4ca92f9775e0 34 // led2 = 0;
aniruddhv 52:0bd68655c651 35 }
aniruddhv 52:0bd68655c651 36 irpt_2_slv = 0;
aniruddhv 69:20f09a0c3fd2 37 //gPC.printf("\n\r %d \n",t.read_us());
aniruddhv 52:0bd68655c651 38 //t.reset();
aniruddhv 52:0bd68655c651 39 }
aniruddhv 52:0bd68655c651 40
aniruddhv 52:0bd68655c651 41
shreeshas95 103:b55559925dc1 42 void FCTN_I2C_READ(char *data,int length)
aniruddhv 52:0bd68655c651 43 {
shreeshas95 103:b55559925dc1 44 irpt_2_slv = 1;
shreeshas95 103:b55559925dc1 45 //t_read.start();
shreeshas95 103:b55559925dc1 46 read_ack = master.read(addr|1,data,length);
shreeshas95 103:b55559925dc1 47 //t_read.stop();
shreeshas95 103:b55559925dc1 48
aniruddhv 52:0bd68655c651 49 //if(read_ack == 0)
shreeshas95 103:b55559925dc1 50 // printf("\n\rData received from BAE %s \n",data);
aniruddhv 52:0bd68655c651 51 if (read_ack == 1)
aniruddhv 52:0bd68655c651 52 {
shreeshas95 103:b55559925dc1 53 gLEDR = 1;
shreeshas95 103:b55559925dc1 54 printf("\n \r data not received \n");
shreeshas95 103:b55559925dc1 55 gLEDR = 0;
aniruddhv 52:0bd68655c651 56 }
aniruddhv 52:0bd68655c651 57 //if(read_ack == 1)
shreeshas95 103:b55559925dc1 58 //pc.printf("\n \r data not received \n");
aniruddhv 52:0bd68655c651 59
aniruddhv 52:0bd68655c651 60 irpt_2_slv = 0;
shreeshas95 103:b55559925dc1 61 //printf("\n\r %d \n",t.read_us());
aniruddhv 52:0bd68655c651 62 //t.reset();
aniruddhv 52:0bd68655c651 63 }