i2cmaster class without interrupt process
i2cmaster.h@0:a7ab96dc6a35, 2017-02-26 (annotated)
- Committer:
- sgrsn
- Date:
- Sun Feb 26 07:02:27 2017 +0000
- Revision:
- 0:a7ab96dc6a35
i2cmaster class without interrut process
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sgrsn | 0:a7ab96dc6a35 | 1 | #ifndef MBED_I2CMASTER_H |
sgrsn | 0:a7ab96dc6a35 | 2 | #define MBED_I2CMASTER_H |
sgrsn | 0:a7ab96dc6a35 | 3 | |
sgrsn | 0:a7ab96dc6a35 | 4 | #include "mbed.h" |
sgrsn | 0:a7ab96dc6a35 | 5 | |
sgrsn | 0:a7ab96dc6a35 | 6 | #define SendData 0 |
sgrsn | 0:a7ab96dc6a35 | 7 | #define RequestData 1 |
sgrsn | 0:a7ab96dc6a35 | 8 | |
sgrsn | 0:a7ab96dc6a35 | 9 | class i2c : public I2C |
sgrsn | 0:a7ab96dc6a35 | 10 | { |
sgrsn | 0:a7ab96dc6a35 | 11 | public: |
sgrsn | 0:a7ab96dc6a35 | 12 | i2c(PinName sda, PinName scl); |
sgrsn | 0:a7ab96dc6a35 | 13 | /*{ |
sgrsn | 0:a7ab96dc6a35 | 14 | frequency(400000); |
sgrsn | 0:a7ab96dc6a35 | 15 | }*/ |
sgrsn | 0:a7ab96dc6a35 | 16 | |
sgrsn | 0:a7ab96dc6a35 | 17 | void sendi2c(char addr, char registar, int data, int size = 0); |
sgrsn | 0:a7ab96dc6a35 | 18 | /*{ |
sgrsn | 0:a7ab96dc6a35 | 19 | if(size > 0) size = size; |
sgrsn | 0:a7ab96dc6a35 | 20 | else if(data > 0xFFFFFF) size = 4; |
sgrsn | 0:a7ab96dc6a35 | 21 | else if(data > 0xFFFF) size = 3; |
sgrsn | 0:a7ab96dc6a35 | 22 | else if(data > 0xFF) size = 2; |
sgrsn | 0:a7ab96dc6a35 | 23 | else size = 1; |
sgrsn | 0:a7ab96dc6a35 | 24 | char DATA[4] = {data & 0xFF, (data>>8) & 0xFF, (data>>16) & 0xFF, (data>>24) & 0xFF}; |
sgrsn | 0:a7ab96dc6a35 | 25 | char i2cData[3] = {size, registar, SendData}; |
sgrsn | 0:a7ab96dc6a35 | 26 | write(addr, i2cData, 3); |
sgrsn | 0:a7ab96dc6a35 | 27 | write(addr, DATA, size); |
sgrsn | 0:a7ab96dc6a35 | 28 | }*/ |
sgrsn | 0:a7ab96dc6a35 | 29 | |
sgrsn | 0:a7ab96dc6a35 | 30 | int getSlaveData(char addr, char registar, int size = 1); |
sgrsn | 0:a7ab96dc6a35 | 31 | /*{ |
sgrsn | 0:a7ab96dc6a35 | 32 | char i2cData[3] = {size, registar, RequestData}; |
sgrsn | 0:a7ab96dc6a35 | 33 | char getData[12] = {}; |
sgrsn | 0:a7ab96dc6a35 | 34 | write(addr, i2cData, 3); |
sgrsn | 0:a7ab96dc6a35 | 35 | read(addr, getData, size); |
sgrsn | 0:a7ab96dc6a35 | 36 | return getData[0] | (getData[1] << 8) | (getData[2] << 16) | (getData[3] << 24); |
sgrsn | 0:a7ab96dc6a35 | 37 | }*/ |
sgrsn | 0:a7ab96dc6a35 | 38 | }; |
sgrsn | 0:a7ab96dc6a35 | 39 | |
sgrsn | 0:a7ab96dc6a35 | 40 | #endif |