i2c slave working version 1.0

Dependencies:   mbed-rtos mbed

Fork of freeslave_write2master_working by Seeker of Truth ,

Revision:
3:5e68dd4bbb70
Parent:
2:458f9e603814
Child:
4:133b49d51b18
--- a/main.cpp	Tue Dec 09 12:35:12 2014 +0000
+++ b/main.cpp	Wed Dec 10 05:21:50 2014 +0000
@@ -5,7 +5,7 @@
 I2CSlave slave(D14,D15);                       //configuring pins p27, p28 as I2Cslave
 Serial pc (USBTX,USBRX);
 InterruptIn interrupt(D9);
-void FUNC_I2C_WRITE2CDMS(char  * data_send,int length)
+void FUNC_I2C_WRITE2CDMS(char  * data,int length)
 {
 
     int slave_status = 1;
@@ -14,23 +14,31 @@
             slave.address(0x20);
             if(slave.receive()==1)
             {
-                slave_status=slave.write(data_send,length);
-                printf("\n In the while loop\n");
+                slave_status=slave.write(data,length);
+               // printf("\n In the while loop\n");
                 
-                if(!slave_status)
+               /* if(!slave_status)
                 {
-                        printf("slave wrote %c to master\n\r",*data_send);
+                        printf("slave wrote %c to master\n\r",*data);
               
-                }
+                }*/
                 
             }
-            
+            else
+                if(slave.receive()==3 || slave.receive()==2)
+                {
+                     slave_status=slave.read(data,length);
+                     /*if(!slave_status)
+                     {
+                         printf("1 read %c from master\n\r",*data);
+                     }*/
+                }
             //slave.stop();
     }
             printf("2 done");
 }
 
-void FUNC_I2C_READFCDMS()
+/*void FUNC_I2C_READFCDMS()
 
 {
     printf("\nEntered slave code\n");
@@ -55,19 +63,20 @@
      delete data_rec;
     
 }
-   
+*/   
 void main()
 {
     printf("\nStarted slave... waiting for master\n");
-    char * data_send = new char;
-    *data_send = 'a';
+    char * data = new char;
+    *data = 'a';
     
     while(1)
     {
         //*(data_send)=pc.getc();
         
-        FUNC_I2C_READFCDMS();
-        (*data_send)++;
+        FUNC_I2C_WRITE2CDMS(data,1);
+        printf("\n The data send or received by slave is %c\n",*data);
+        (*data)++;
         //wait(1);
     }
 }
\ No newline at end of file