Dependencies: I2CMotor I2CServo Robot XBee
I2CDevice.h
- Committer:
- inst
- Date:
- 2015-08-21
- Revision:
- 1:01d881dc1170
- Child:
- 2:6c60a3006881
File content as of revision 1:01d881dc1170:
#ifndef INCLUDED_I2CDEVICE_H #define INCLUDED_I2CDEVICE_H #include "mbed.h" class I2CDevice{ public: static void initI2C( PinName sda, PinName scl ){ mI2C = new I2C( sda, scl ); } I2CDevice( char address ) : mAddress( address ){ } virtual void write() = 0; virtual void read() = 0; void write( char* data, size_t len ) const{ mI2C->write( mAddress, data, len ); } void read( char* data, size_t len ) const{ mI2C->read( mAddress, data, len ); } void writeReg( char devAddr, char regAddr, char data ){ char d[ 2 ] = { regAddr, data }; mI2C->write( devAddr, d, 2 ); } void readReg( char devAddr, char regAddr, char* data, size_t len ){ regAddr |= 0x80; mI2C->write( devAddr, ®Addr, 1, true ); mI2C->read( devAddr | 1, data, len ); } static I2C* mI2C; protected: const char mAddress; }; #endif