Plese use this class with my "i2cmaster" class.

Dependents:   2016_slave_rorikon_2 2016_slave_cylinder 2016_slave_MD 2016_slave_MD_rorikon ... more

i2cslave.h

Committer:
sgrsn
Date:
2016-04-16
Revision:
0:69b088a9899b
Child:
2:0dff052266ca

File content as of revision 0:69b088a9899b:

#ifndef MBED_I2CSLAVE_H
#define MBED_I2CSLAVE_H

#include "mbed.h"

namespace mbed {
    
    /*example****************************
    
    *   #include "mbed.h"
    *   #include "i2cslave.h"

    *   char Registar[0x80];
    *   i2cslave i2c(dp5, dp27, Registar);
    
    *   int main()
    *   {
    *       i2c.address(0xa0);
    *       while(1)
    *       {
    *           printf("%d\r\n", Registar[1]);
    *       }
    *  }
    *************************************/
    
class i2cslave : public I2CSlave
{
public:
    char *Registar;
    i2cslave(PinName sda, PinName scl, char *Registar);
     
     void getdata();
     
    void attach(void (*fptr)(void));

    template<typename T>
    void attach(T* tptr, void (T::*mptr)(void)) {
        fp.attach(tptr, mptr);
        enable_attach();
    }
    
    void enable_attach();

    void disable_attach();

    static void func_call(uint32_t id, uint8_t addr, uint8_t state);
    
protected:
    FunctionPointer fp;    
    
};

}
 
#endif