PCA9635 16-bit I2C-bus LED driver

Dependents:   digitalThermometer Counter SimpleClock printNumber ... more

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);
     }
 }