Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:e2acb437847f, 2015-01-20 (annotated)
- Committer:
- sakthipriya
- Date:
- Tue Jan 20 17:57:59 2015 +0000
- Revision:
- 0:e2acb437847f
new slave not working
Who changed what in which revision?
| User | Revision | Line number | New 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 |