i2c slave working version 1.1

Dependencies:   mbed-rtos mbed

Fork of slave_i2c3 by sakthi priya amirtharaj

Revision:
2:458f9e603814
Parent:
1:4c71a7675750
Child:
3:5e68dd4bbb70
diff -r 4c71a7675750 -r 458f9e603814 main.cpp
--- a/main.cpp	Mon Dec 08 03:55:57 2014 +0000
+++ b/main.cpp	Tue Dec 09 12:35:12 2014 +0000
@@ -4,27 +4,70 @@
 
 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 main(){
-    printf("press backspace for slave to start \n\r");
-    char *data_send = new char;
-            *data_send = 'k';
-    while(1){
-        //if(pc.getc()==8){
-          //  bool loopvariable1= true;
-            
+    int slave_status = 1;
+    while(slave_status)
+    {                 
             slave.address(0x20);
-            int slave_status=1;
-            //while(loopvariable1){
-                if(slave.receive()==1){
-                slave_status=slave.write(data_send,1);
-                    if(!slave_status){
-                        printf("1 wrote %c to master\n\r",*data_send);
-              //          loopvariable1 = false;
-                    }
+            if(slave.receive()==1)
+            {
+                slave_status=slave.write(data_send,length);
+                printf("\n In the while loop\n");
+                
+                if(!slave_status)
+                {
+                        printf("slave wrote %c to master\n\r",*data_send);
+              
                 }
+                
             }
+            
+            //slave.stop();
+    }
             printf("2 done");
-        }
+}
+
+void FUNC_I2C_READFCDMS()
+
+{
+    printf("\nEntered slave code\n");
+    //read_loop=true;
+    char *data_rec = new char;
+   int slave_status =1;
+     
+     slave.address(0x20);
+                
+     
+                
+     printf("\nentered slave while loop\n");
+                //if(slave.receive()==3) 
+                while(slave_status==1)
+                    slave_status=slave.read(data_rec,1);
+                
+     if(slave_status==0){printf("1 read %c from master\n\r",*data_rec);}
+      //                 read_loop = false;}
+                   
+     printf("\n done \n \r");
+     
+     delete data_rec;
     
-                
\ No newline at end of file
+}
+   
+void main()
+{
+    printf("\nStarted slave... waiting for master\n");
+    char * data_send = new char;
+    *data_send = 'a';
+    
+    while(1)
+    {
+        //*(data_send)=pc.getc();
+        
+        FUNC_I2C_READFCDMS();
+        (*data_send)++;
+        //wait(1);
+    }
+}
\ No newline at end of file