sakthi priya amirtharaj / Mbed 2 deprecated slave_debug

Dependencies:   mbed

Fork of new_slave by sakthi priya amirtharaj

Committer:
sakthipriya
Date:
Tue Jan 20 17:57:59 2015 +0000
Revision:
0:e2acb437847f
Child:
1:541e44bb5f9b
new slave not working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sakthipriya 0:e2acb437847f 1 #include "mbed.h"
sakthipriya 0:e2acb437847f 2 I2CSlave slave(D14,D15); //configuring pins p27, p28 as I2Cslave
sakthipriya 0:e2acb437847f 3 Serial pc (USBTX,USBRX);
sakthipriya 0:e2acb437847f 4 InterruptIn master_intrpt(D9);
sakthipriya 0:e2acb437847f 5
sakthipriya 0:e2acb437847f 6 DigitalOut slave_intrpt(D10);
sakthipriya 0:e2acb437847f 7
sakthipriya 0:e2acb437847f 8 int ack0 = 1;
sakthipriya 0:e2acb437847f 9 int ack1 = 1; //read/write mode for i2c 0 : write2slave, 1 : write2master
sakthipriya 0:e2acb437847f 10
sakthipriya 0:e2acb437847f 11
sakthipriya 0:e2acb437847f 12 char writedata;
sakthipriya 0:e2acb437847f 13 char readdata;
sakthipriya 0:e2acb437847f 14
sakthipriya 0:e2acb437847f 15 void FUNC_I2C_WRITE2CDMS()
sakthipriya 0:e2acb437847f 16 {
sakthipriya 0:e2acb437847f 17
sakthipriya 0:e2acb437847f 18 slave.address(0x20);
sakthipriya 0:e2acb437847f 19 while(ack0==1)
sakthipriya 0:e2acb437847f 20 {
sakthipriya 0:e2acb437847f 21 if(slave.receive()==1)
sakthipriya 0:e2acb437847f 22 {
sakthipriya 0:e2acb437847f 23 ack0=slave.write(&writedata,1);
sakthipriya 0:e2acb437847f 24
sakthipriya 0:e2acb437847f 25
sakthipriya 0:e2acb437847f 26 }
sakthipriya 0:e2acb437847f 27 else if(slave.receive()==3 || slave.receive()==2)
sakthipriya 0:e2acb437847f 28 {
sakthipriya 0:e2acb437847f 29 ack1=slave.read(&readdata,1);
sakthipriya 0:e2acb437847f 30 }
sakthipriya 0:e2acb437847f 31 }
sakthipriya 0:e2acb437847f 32 if(!ack0 )
sakthipriya 0:e2acb437847f 33 {
sakthipriya 0:e2acb437847f 34 printf("slave has written %c to slave\n\r",writedata);
sakthipriya 0:e2acb437847f 35 //printf("\n \r %d %d %d %d %d\n",*data_reg,*status_reg,*c1_reg,*c2_reg,*freq_reg);
sakthipriya 0:e2acb437847f 36 }
sakthipriya 0:e2acb437847f 37 else
sakthipriya 0:e2acb437847f 38 {
sakthipriya 0:e2acb437847f 39 printf("\n\r data not written to slave \n");
sakthipriya 0:e2acb437847f 40 }
sakthipriya 0:e2acb437847f 41 if(!ack1 )
sakthipriya 0:e2acb437847f 42 {
sakthipriya 0:e2acb437847f 43 printf("slave has read %c to master \n \r",writedata);
sakthipriya 0:e2acb437847f 44 //printf("\n \r %d %d %d %d %d\n",*data_reg,*status_reg,*c1_reg,*c2_reg,*freq_reg);
sakthipriya 0:e2acb437847f 45 }
sakthipriya 0:e2acb437847f 46 else
sakthipriya 0:e2acb437847f 47 {
sakthipriya 0:e2acb437847f 48 printf("\n\r data not read from master \n");
sakthipriya 0:e2acb437847f 49 }
sakthipriya 0:e2acb437847f 50 }
sakthipriya 0:e2acb437847f 51
sakthipriya 0:e2acb437847f 52
sakthipriya 0:e2acb437847f 53 void FUNC_INT()
sakthipriya 0:e2acb437847f 54 {
sakthipriya 0:e2acb437847f 55
sakthipriya 0:e2acb437847f 56 FUNC_I2C_WRITE2CDMS();
sakthipriya 0:e2acb437847f 57 slave_intrpt = 0;
sakthipriya 0:e2acb437847f 58 }
sakthipriya 0:e2acb437847f 59
sakthipriya 0:e2acb437847f 60
sakthipriya 0:e2acb437847f 61
sakthipriya 0:e2acb437847f 62
sakthipriya 0:e2acb437847f 63
sakthipriya 0:e2acb437847f 64 int main()
sakthipriya 0:e2acb437847f 65 {
sakthipriya 0:e2acb437847f 66 printf("\n slave started\n\r");
sakthipriya 0:e2acb437847f 67
sakthipriya 0:e2acb437847f 68 master_intrpt.rise(&FUNC_INT);
sakthipriya 0:e2acb437847f 69 while(1)
sakthipriya 0:e2acb437847f 70 {
sakthipriya 0:e2acb437847f 71 writedata = pc.getc();
sakthipriya 0:e2acb437847f 72 slave_intrpt=1;
sakthipriya 0:e2acb437847f 73
sakthipriya 0:e2acb437847f 74 }
sakthipriya 0:e2acb437847f 75
sakthipriya 0:e2acb437847f 76 }
sakthipriya 0:e2acb437847f 77