June 30

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE by shubham c

Revision:
52:0bd68655c651
Child:
55:39e59903bc3a
Child:
69:20f09a0c3fd2
diff -r da85d84768e2 -r 0bd68655c651 i2c.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/i2c.h	Thu Jan 14 06:16:42 2016 +0000
@@ -0,0 +1,61 @@
+#define tm_len 134
+#define tc_len 135
+#define tc_test_len 135
+
+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