Seeker of Truth , / Mbed 2 deprecated freemaster_write2master_working

Dependencies:   mbed

Fork of freemaster_write2master_working by green rosh

Revision:
3:c810e140a6bf
Parent:
2:2dd5bd9a64fb
Child:
4:0b714f858ed2
--- a/main.cpp	Wed Dec 10 16:39:17 2014 +0000
+++ b/main.cpp	Fri Dec 12 08:53:06 2014 +0000
@@ -5,20 +5,45 @@
 Serial pc (USBTX,USBRX);
 DigitalOut interrupt(D9);
 InterruptIn data_ready(D10);
+
+
+
 void FUNC_I2C_MASTER()
 {
     //printf("press backspace for master to start \n\r");
     //while(1){
-      //  interrupt = 0;
+            //interrupt = 0;
       //  if(pc.getc()=='z'){
+            wait(0.5);
             interrupt = 1;
-            printf("\nEntered master function\n");
-            int ack0 =true; 
+            printf("\nMaster executed\n");
+            
+          
+            bool ack0 =true; 
+            bool loopvariable0 =true;
             char *data =  new char;
             *data = 'b';
-            bool loopvariable0 = true;
+           
+           
+            
              master.frequency(100000);                       //set clock frequency
              //master.start();
+            /*while(write2slave)
+            {  *writedata = pc.getc();
+            wait(0.5);
+              
+                printf("master clk freq setup and addressing slave\n\r");
+                master.start();                                 //initiating the data transfer
+                master_status_write = (bool) master.write(addr|0x00,writedata,1);
+                if(master_status_write==0)
+                {
+                    printf("master has written %c to slave\n\r",*writedata);
+                    write2slave=false;
+                }
+                    
+                    
+             }*/
+             
             while(ack0)
             {
                 //printf("2 master clk freq setup and addressing slave\n\r");
@@ -36,13 +61,37 @@
             //printf("done\n\r");
             delete data;
             interrupt=0;
-}
-void main()
-{
+            }
+            
+
+int main()
+{   
     data_ready.rise(&FUNC_I2C_MASTER);
     printf("\nstarted master\n");
+    bool write2slave;
+     char *writedata = new char;
+       
+   
+     bool master_status_write = true;
     while(1)
-    {
-        ;
+    { write2slave=true;
+    interrupt = 0;
+    
+      *writedata = pc.getc();
+      
+    interrupt = 1; 
+                master.frequency(100000);                        //set clock frequency
+                while(write2slave)
+           {                
+                printf("master clk freq setup and addressing slave\n\r");
+                master.start();                                 //initiating the data transfer
+                master_status_write = (bool) master.write(addr|0x00,writedata,1);
+                if(master_status_write==0)
+                    {
+                    printf("master has written %c to slave\n\r",*writedata);
+                    write2slave=false;
+                    }
+            }
+        
     }
 }           
\ No newline at end of file