![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
i2c master with interrupt
Fork of freemaster2_1 by
main.cpp
- Committer:
- greenroshks
- Date:
- 2014-12-10
- Revision:
- 2:2dd5bd9a64fb
- Parent:
- 1:8e4b5e1f8039
File content as of revision 2:2dd5bd9a64fb:
#include "mbed.h" const int addr = 0x20; //slave address I2C master (D14,D15); //configure pins p27,p28 as I2C master 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; // if(pc.getc()=='z'){ interrupt = 1; printf("\nEntered master function\n"); int ack0 =true; char *data = new char; *data = 'b'; bool loopvariable0 = true; master.frequency(100000); //set clock frequency //master.start(); while(ack0) { //printf("2 master clk freq setup and addressing slave\n\r"); master.start(); //initiating the data transfer ack0 = master.read(addr,data,1); } if(!ack0) { printf("\n master has read %c from slave\n\r",*data); loopvariable0=false; } //master.stop(); //printf("done\n\r"); delete data; interrupt=0; } void main() { data_ready.rise(&FUNC_I2C_MASTER); printf("\nstarted master\n"); while(1) { ; } }