Chaitanya Viswa
/
freemaster5_1
funtions sorted
main.cpp
- Committer:
- viswachaitanya
- Date:
- 2014-12-08
- Revision:
- 0:a3f89fb87618
File content as of revision 0:a3f89fb87618:
#include "mbed.h" const int addr = 0x20; //slave address I2C master (D14,D15); //configure pins p27,p28 as I2C master Serial pc (USBTX,USBRX); int write_to_slave(char); char* read_from_slave(); bool write_ack = true; bool read_ack = true; char* data_send = new char; char* data_rec = new char; bool write_loop = true; bool read_loop = true; int main(){ while(1) { printf("1 press backspace for master to start \n\r"); if(pc.getc()==8){ master.frequency(100000); data_rec = read_from_slave(); printf("4 in main read %c from slave\n\r",*data_rec); } } } int write_to_slave(char send){ printf("2 master clk freq setup and addressing slave\n\r"); master.frequency(100000); //set clock frequency write_loop = true; while(write_ack){ master.start(); //initiating the data transfer printf("entered write loop \n\r"); write_ack = (bool) master.write(addr|0x00,&send,1,false); if(!write_ack){ printf("3 master has written %c to slave\n\r",send); write_loop=false; } } return(1); } char* read_from_slave(){ read_ack = true; printf("2 master entered function to read\n\r"); while(read_ack){ master.start(); //initiating the data transfer read_ack = (bool) master.read(addr|0x1,data_rec,1,false); //printf("3 addressing slave\n\r"); } printf("4 master has read %c from slave\n\r",*data_rec); return(data_rec); }