i2cslave class without interrupt process
Diff: i2cslave.h
- Revision:
- 0:2976149f5c28
diff -r 000000000000 -r 2976149f5c28 i2cslave.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/i2cslave.h Sun Feb 26 07:04:56 2017 +0000 @@ -0,0 +1,51 @@ +#ifndef MBED_I2CSLAVE_H +#define MBED_I2CSLAVE_H + +#include "mbed.h" + +#define SendData 0 +#define RequestData 1 + +class i2cslave : public I2CSlave +{ + public: + char *_Registar; + i2cslave(PinName sda, PinName scl, char *Registar); + /*{ + _Registar = Registar; + frequency(400000); + }*/ + + void communication(); + /*{ + switch(receive()) + { + case I2CSlave::NoData: //データなし + break; + case I2CSlave::ReadAddressed: //マスターからのデータ送信要求 + break; + case I2CSlave::WriteAddressed: //マスターからデータを受信 + geti2c(); + break; + case I2CSlave::WriteGeneral: //マスターからデータを受信(全スレーブ宛) + break; + } + }*/ + void geti2c(); + /*{ + char i2cData[3] = {}; + read(i2cData, 3); + wait_us(30); + switch(i2cData[2]) + { + case SendData: + read(_Registar + i2cData[1], i2cData[0]); + break; + case RequestData: + write(_Registar + i2cData[1], i2cData[0]); + break; + } + }*/ +}; + +#endif