mirror of https://github.com/ARMmbed/mbed-os.git
option to pass I2C object
parent
286a260c04
commit
87056697f4
|
|
@ -21,11 +21,26 @@
|
||||||
I2CEEBlockDevice::I2CEEBlockDevice(
|
I2CEEBlockDevice::I2CEEBlockDevice(
|
||||||
PinName sda, PinName scl, uint8_t addr,
|
PinName sda, PinName scl, uint8_t addr,
|
||||||
bd_size_t size, bd_size_t block, int freq)
|
bd_size_t size, bd_size_t block, int freq)
|
||||||
: _i2c(sda, scl), _i2c_addr(addr), _size(size), _block(block)
|
: _i2c_p(new I2C(sda, scl)), _i2c(*_i2c_p), _i2c_addr(addr),
|
||||||
|
_size(size), _block(block)
|
||||||
{
|
{
|
||||||
_i2c.frequency(freq);
|
_i2c.frequency(freq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
I2CEEBlockDevice::I2CEEBlockDevice(
|
||||||
|
I2C &i2c_obj, uint8_t addr,
|
||||||
|
bd_size_t size, bd_size_t block)
|
||||||
|
: _i2c_p(NULL), _i2c(i2c_obj), _i2c_addr(addr),
|
||||||
|
_size(size), _block(block)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
I2CEEBlockDevice::~I2CEEBlockDevice()
|
||||||
|
{
|
||||||
|
if (_i2c_p != NULL){
|
||||||
|
delete _i2c_p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int I2CEEBlockDevice::init()
|
int I2CEEBlockDevice::init()
|
||||||
{
|
{
|
||||||
return _sync();
|
return _sync();
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,24 @@ public:
|
||||||
I2CEEBlockDevice(
|
I2CEEBlockDevice(
|
||||||
PinName sda, PinName scl, uint8_t address,
|
PinName sda, PinName scl, uint8_t address,
|
||||||
bd_size_t size, bd_size_t block=32,
|
bd_size_t size, bd_size_t block=32,
|
||||||
int bus_speed=400000);
|
int bus_speed=400000);
|
||||||
|
|
||||||
|
/** Constructor to create an I2CEEBlockDevice on I2C pins
|
||||||
|
*
|
||||||
|
* @param i2c The I2C instance
|
||||||
|
* @param addr The 8bit I2C address of the chip, common range 0xa0 - 0xae.
|
||||||
|
* @param size The size of the device in bytes
|
||||||
|
* @param block The page size of the device in bytes, defaults to 32bytes
|
||||||
|
* @param freq The frequency of the I2C bus, defaults to 400K.
|
||||||
|
*/
|
||||||
|
I2CEEBlockDevice(
|
||||||
|
I2C &i2c_obj, uint8_t address,
|
||||||
|
bd_size_t size, bd_size_t block=32);
|
||||||
|
|
||||||
|
/** Destructor of I2CEEBlockDevice
|
||||||
|
*/
|
||||||
|
|
||||||
|
virtual ~I2CEEBlockDevice();
|
||||||
|
|
||||||
/** Initialize a block device
|
/** Initialize a block device
|
||||||
*
|
*
|
||||||
|
|
@ -141,7 +158,8 @@ public:
|
||||||
virtual bd_size_t size() const;
|
virtual bd_size_t size() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
I2C _i2c;
|
I2C *_i2c_p;
|
||||||
|
I2C &_i2c;
|
||||||
uint8_t _i2c_addr;
|
uint8_t _i2c_addr;
|
||||||
uint32_t _size;
|
uint32_t _size;
|
||||||
uint32_t _block;
|
uint32_t _block;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue