I2C interface for our mbed.
Fork of I2Cinterfaces by
MBEDI2CInterface.h@2:6dafea14e21e, 2016-04-01 (annotated)
- Committer:
- katrijnverhasselt
- Date:
- Fri Apr 01 08:39:58 2016 +0000
- Revision:
- 2:6dafea14e21e
- Parent:
- 1:80ebfbf95667
I2C interface of our Mbed.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wbeaumont | 0:c65947f64a8b | 1 | #ifndef __MBEDI2CINTERFACE_H |
wbeaumont | 0:c65947f64a8b | 2 | #define __MBEDI2CINTERFACE_H |
wbeaumont | 0:c65947f64a8b | 3 | |
katrijnverhasselt | 2:6dafea14e21e | 4 | #include "I2C.h" |
katrijnverhasselt | 2:6dafea14e21e | 5 | |
wbeaumont | 0:c65947f64a8b | 6 | #define VERSION_MBEDI2CInterface_HDR "1.00" |
wbeaumont | 0:c65947f64a8b | 7 | |
wbeaumont | 0:c65947f64a8b | 8 | |
wbeaumont | 0:c65947f64a8b | 9 | class MBEDI2CInterface :public I2CInterface { |
wbeaumont | 0:c65947f64a8b | 10 | |
katrijnverhasselt | 2:6dafea14e21e | 11 | mbed::I2C i2cdev; |
wbeaumont | 0:c65947f64a8b | 12 | public : |
wbeaumont | 0:c65947f64a8b | 13 | |
katrijnverhasselt | 2:6dafea14e21e | 14 | MBEDI2CInterface(PinName sda, PinName scl) |
katrijnverhasselt | 2:6dafea14e21e | 15 | : getVersion(VERSION_MBEDI2CInterface_HDR, VERSION_MBEDI2CInterface_HDR, __TIME__, __DATE__), |
katrijnverhasselt | 2:6dafea14e21e | 16 | i2cdev(sda,scl) { |
wbeaumont | 0:c65947f64a8b | 17 | // no init code yet |
katrijnverhasselt | 2:6dafea14e21e | 18 | } |
katrijnverhasselt | 2:6dafea14e21e | 19 | // next could perhaps more efficient but not yet investigated |
katrijnverhasselt | 2:6dafea14e21e | 20 | |
katrijnverhasselt | 2:6dafea14e21e | 21 | virtual void frequency (int hz){ |
katrijnverhasselt | 2:6dafea14e21e | 22 | return i2cdev.frequency(hz) ; |
katrijnverhasselt | 2:6dafea14e21e | 23 | } |
katrijnverhasselt | 2:6dafea14e21e | 24 | |
katrijnverhasselt | 2:6dafea14e21e | 25 | virtual int read (int address, char *data, int length, bool repeated=false) { |
katrijnverhasselt | 2:6dafea14e21e | 26 | return i2cdev.read(address, data, length, repeated); |
katrijnverhasselt | 2:6dafea14e21e | 27 | } |
katrijnverhasselt | 2:6dafea14e21e | 28 | |
katrijnverhasselt | 2:6dafea14e21e | 29 | // Read a single byte from the I2C bus. |
katrijnverhasselt | 2:6dafea14e21e | 30 | virtual int read(int ack) { |
katrijnverhasselt | 2:6dafea14e21e | 31 | return i2cdev.read(ack); |
katrijnverhasselt | 2:6dafea14e21e | 32 | } |
katrijnverhasselt | 2:6dafea14e21e | 33 | |
katrijnverhasselt | 2:6dafea14e21e | 34 | virtual int write(int address, const char *data, int length, bool repeated=false){ |
katrijnverhasselt | 2:6dafea14e21e | 35 | return i2cdev.write(address, data, length, repeated); |
katrijnverhasselt | 2:6dafea14e21e | 36 | } |
katrijnverhasselt | 2:6dafea14e21e | 37 | |
katrijnverhasselt | 2:6dafea14e21e | 38 | // Write single byte out on the I2C bus. |
katrijnverhasselt | 2:6dafea14e21e | 39 | virtual int write(int data) { |
katrijnverhasselt | 2:6dafea14e21e | 40 | return i2cdev.write(data); |
katrijnverhasselt | 2:6dafea14e21e | 41 | } |
katrijnverhasselt | 2:6dafea14e21e | 42 | // Creates a start condition on the I2C bus |
katrijnverhasselt | 2:6dafea14e21e | 43 | virtual void start(void) { |
katrijnverhasselt | 2:6dafea14e21e | 44 | i2cdev.start(); |
katrijnverhasselt | 2:6dafea14e21e | 45 | } |
katrijnverhasselt | 2:6dafea14e21e | 46 | // Creates a stop condition on the I2C bus. |
katrijnverhasselt | 2:6dafea14e21e | 47 | virtual void stop(void) { |
katrijnverhasselt | 2:6dafea14e21e | 48 | i2cdev.stop(); |
katrijnverhasselt | 2:6dafea14e21e | 49 | } |
katrijnverhasselt | 2:6dafea14e21e | 50 | |
katrijnverhasselt | 2:6dafea14e21e | 51 | virtual int transfer(int address, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, void* callbackfunction, bool repeated=false){ |
katrijnverhasselt | 2:6dafea14e21e | 52 | return -1; // seems transfer not supported in mbed or not correctly called below |
katrijnverhasselt | 2:6dafea14e21e | 53 | // return i2cdev.transfer (address, tx_buffer, tx_length, rx_buffer, rx_length, callback, event, repeated); |
katrijnverhasselt | 2:6dafea14e21e | 54 | } |
wbeaumont | 0:c65947f64a8b | 55 | |
wbeaumont | 0:c65947f64a8b | 56 | |
katrijnverhasselt | 2:6dafea14e21e | 57 | } ; |
wbeaumont | 0:c65947f64a8b | 58 | |
wbeaumont | 0:c65947f64a8b | 59 | |
wbeaumont | 0:c65947f64a8b | 60 | |
wbeaumont | 0:c65947f64a8b | 61 | |
wbeaumont | 0:c65947f64a8b | 62 | |
wbeaumont | 0:c65947f64a8b | 63 | #endif |