This is a driver code for the PCA9632 is an I2C-bus controlled 4-bit LED driver optimized for Red/Green/Blue/Amber (RGBA) color mixing applications. In Individual brightness control mode, each LED output has its own 8-bit resolution (256 steps) fixed frequency Individual PWM controller that operates at 1.5625 kHz with a duty cycle that is adjustable from 0 % to 99.6 % to allow the LED to be set to a specific brightness value. This library including device class and "LedPwmOut class API" for ease of use.

Dependencies:   CompLedDvr

Dependents:   PCA9632_Hello

Please refer to the component page for details

The PCA9632 is an I²C-bus controlled 4-bit LED driver optimized for Red/Green/Blue/Amber (RGBA) color mixing applications.

High-level API is available

A high-level API that can be used as the "PwmOut" of bed-SDK is available.
This API enables to make instances of each LED output pins and control PWM duty cycle by assignment.
For detail information, refer API document of LedPwmOut Class class which is included in PCA962xA class library.

#include "mbed.h"
#include "PCA9632.h"

PCA9632     led_cntlr( p28, p27, 0xC4 );  //  SDA, SCL, Slave_address(option)
LedPwmOut   led( led_cntlr, L0 );

int main()
{
    while( 1 ) {
        for( float p = 0.0f; p < 1.0f; p += 0.1f ) {
            led     = p;
            wait( 0.1 );
        }
    }
}
Committer:
nxp_ip
Date:
Wed Mar 04 04:12:53 2015 +0000
Revision:
0:da1fe3fe7093
Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nxp_ip 0:da1fe3fe7093 1 #include "mbed.h"
nxp_ip 0:da1fe3fe7093 2 #include "LedPwmOut.h"
nxp_ip 0:da1fe3fe7093 3
nxp_ip 0:da1fe3fe7093 4 LedPwmOut::LedPwmOut( CompLedDvr &ledp, LedPinName pin_name )
nxp_ip 0:da1fe3fe7093 5 : leddvrp( &ledp ), pin( pin_name )
nxp_ip 0:da1fe3fe7093 6 {
nxp_ip 0:da1fe3fe7093 7 pwm( 0.0 );
nxp_ip 0:da1fe3fe7093 8 }
nxp_ip 0:da1fe3fe7093 9
nxp_ip 0:da1fe3fe7093 10 LedPwmOut::~LedPwmOut()
nxp_ip 0:da1fe3fe7093 11 {
nxp_ip 0:da1fe3fe7093 12 }
nxp_ip 0:da1fe3fe7093 13
nxp_ip 0:da1fe3fe7093 14 void LedPwmOut::pwm( float v )
nxp_ip 0:da1fe3fe7093 15 {
nxp_ip 0:da1fe3fe7093 16 leddvrp->pwm( pin, v );
nxp_ip 0:da1fe3fe7093 17 }
nxp_ip 0:da1fe3fe7093 18
nxp_ip 0:da1fe3fe7093 19 LedPwmOut& LedPwmOut::operator=( float rhs )
nxp_ip 0:da1fe3fe7093 20 {
nxp_ip 0:da1fe3fe7093 21 pwm( rhs );
nxp_ip 0:da1fe3fe7093 22 return ( *this );
nxp_ip 0:da1fe3fe7093 23 }