slave not working

Dependencies:   mbed

Fork of new_slave by sakthi priya amirtharaj

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"       
00002 I2CSlave slave(D14,D15);                       //configuring pins p27, p28 as I2Cslave
00003 Serial pc (USBTX,USBRX);
00004 InterruptIn master_intrpt(D9);
00005  
00006 DigitalOut slave_intrpt(D10);
00007  
00008 int ack0 = 1;
00009 int ack1 = 1;                               //read/write mode for i2c 0 : write2slave, 1 : write2master
00010 
00011 
00012 char writedata;
00013 char readdata;
00014  
00015 void FUNC_I2C_WRITE2CDMS()
00016 {
00017         
00018             slave.address(0x20);
00019             while(ack0)
00020             {
00021             if(slave.receive()==1)
00022             {
00023                 ack0=slave.write(&writedata,1);
00024                
00025                 
00026             }
00027             else if(slave.receive()==3 || slave.receive()==2)
00028             {
00029                 ack0=slave.read(&readdata,1);
00030             }
00031             printf("loop");
00032             }
00033            // if(!ack0 )
00034            //{
00035                 printf("\ndata writen %d\n\r",writedata);
00036                 printf("\n\r data read %d \n",readdata);
00037                 //printf("\n \r %d %d %d %d %d\n",*data_reg,*status_reg,*c1_reg,*c2_reg,*freq_reg);
00038           /* }
00039             else
00040             {
00041             printf("\n\r data not written to slave \n");
00042             }*/
00043             
00044 }
00045 
00046         
00047 void FUNC_INT()
00048 {
00049 
00050     FUNC_I2C_WRITE2CDMS();
00051     slave_intrpt = 0;   
00052 }
00053  
00054 
00055 
00056  
00057  
00058 int main()
00059 {   
00060     printf("\n slave started\n\r");
00061     slave_intrpt = 0;
00062     master_intrpt.rise(&FUNC_INT);
00063     while(1)
00064     {
00065     writedata = pc.getc();
00066     slave_intrpt=1;
00067                 
00068     }
00069      
00070 }
00071