PCA9635 16-bit I2C-bus LED driver
Dependents: digitalThermometer Counter SimpleClock printNumber ... more
Diff: PCA9635.cpp
- Revision:
- 2:9ca6a4fbab5e
- Parent:
- 0:d9cc568daeaf
- Child:
- 4:056255549579
--- a/PCA9635.cpp Tue Jun 28 10:19:23 2011 +0000 +++ b/PCA9635.cpp Tue Jun 28 12:32:18 2011 +0000 @@ -6,10 +6,9 @@ #include "mbed.h" #include "PCA9635.h" - -PCA9635::PCA9635(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) +PCA9635::PCA9635(PinName sda, PinName scl) : m_i2c(sda, scl) { - init(); + init(0x02); } @@ -19,25 +18,27 @@ m_i2c.write(m_addr, cmd, 1); } -void PCA9635::init(void){ +void PCA9635::init(int address){ + m_addr = address; + reset(); //Mode-1 Register: cmd[0] = 0x00; cmd[1] = 0x00; - m_i2c.write(m_addr, cmd, 2); + m_i2c.write(address, cmd, 2); //Mode-2 Register: cmd[0] = 0x01; cmd[1] = 0x22; - m_i2c.write(m_addr, cmd, 2); + m_i2c.write(address, cmd, 2); //LED Registers into PWM Control for(char i=0x14; i<0x18; i++) { cmd[0] = i; cmd[1] = 0xAA; - m_i2c.write(m_addr, cmd, 2); + m_i2c.write(address, cmd, 2); } }