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 /** LedPwmOut class for LED driver component
nxp_ip 0:da1fe3fe7093 2 *
nxp_ip 0:da1fe3fe7093 3 * @author Akifumi (Tedd) OKANO, NXP Semiconductors
nxp_ip 0:da1fe3fe7093 4 * @version 0.5
nxp_ip 0:da1fe3fe7093 5 * @date 04-Mar-2015
nxp_ip 0:da1fe3fe7093 6 *
nxp_ip 0:da1fe3fe7093 7 * Released under the Apache 2 license License
nxp_ip 0:da1fe3fe7093 8 */
nxp_ip 0:da1fe3fe7093 9
nxp_ip 0:da1fe3fe7093 10 #ifndef MBED_LedPwmOut
nxp_ip 0:da1fe3fe7093 11 #define MBED_LedPwmOut
nxp_ip 0:da1fe3fe7093 12
nxp_ip 0:da1fe3fe7093 13 #include "mbed.h"
nxp_ip 0:da1fe3fe7093 14 #include "CompLedDvr.h"
nxp_ip 0:da1fe3fe7093 15
nxp_ip 0:da1fe3fe7093 16 /** LedPwmOut class
nxp_ip 0:da1fe3fe7093 17 *
nxp_ip 0:da1fe3fe7093 18 * "LedPwmOut" class works like "PwmOut" class of mbed-SDK.
nxp_ip 0:da1fe3fe7093 19 * This class provides API on device's pin level with abstracting the LED controller.
nxp_ip 0:da1fe3fe7093 20 *
nxp_ip 0:da1fe3fe7093 21 * Example:
nxp_ip 0:da1fe3fe7093 22 * @code
nxp_ip 0:da1fe3fe7093 23 * #include "mbed.h"
nxp_ip 0:da1fe3fe7093 24 * #include "PCA9632.h"
nxp_ip 0:da1fe3fe7093 25 *
nxp_ip 0:da1fe3fe7093 26 * PCA9632 led_cntlr( p28, p27, 0xC4 ); // SDA, SCL, Slave_address(option)
nxp_ip 0:da1fe3fe7093 27 * LedPwmOut led( led_cntlr, L0 );
nxp_ip 0:da1fe3fe7093 28 *
nxp_ip 0:da1fe3fe7093 29 * int main()
nxp_ip 0:da1fe3fe7093 30 * {
nxp_ip 0:da1fe3fe7093 31 * while( 1 ) {
nxp_ip 0:da1fe3fe7093 32 * for( float p = 0.0f; p < 1.0f; p += 0.1f ) {
nxp_ip 0:da1fe3fe7093 33 * led = p;
nxp_ip 0:da1fe3fe7093 34 * wait( 0.1 );
nxp_ip 0:da1fe3fe7093 35 * }
nxp_ip 0:da1fe3fe7093 36 * }
nxp_ip 0:da1fe3fe7093 37 * }
nxp_ip 0:da1fe3fe7093 38 * @endcode
nxp_ip 0:da1fe3fe7093 39 */
nxp_ip 0:da1fe3fe7093 40
nxp_ip 0:da1fe3fe7093 41
nxp_ip 0:da1fe3fe7093 42 class LedPwmOut
nxp_ip 0:da1fe3fe7093 43 {
nxp_ip 0:da1fe3fe7093 44 public:
nxp_ip 0:da1fe3fe7093 45 LedPwmOut( CompLedDvr &ledp, LedPinName pin_name );
nxp_ip 0:da1fe3fe7093 46 virtual ~LedPwmOut();
nxp_ip 0:da1fe3fe7093 47
nxp_ip 0:da1fe3fe7093 48 virtual void pwm( float v );
nxp_ip 0:da1fe3fe7093 49
nxp_ip 0:da1fe3fe7093 50 /** A shorthand for write()
nxp_ip 0:da1fe3fe7093 51 */
nxp_ip 0:da1fe3fe7093 52 LedPwmOut& operator= ( float rhs );
nxp_ip 0:da1fe3fe7093 53
nxp_ip 0:da1fe3fe7093 54 private:
nxp_ip 0:da1fe3fe7093 55 CompLedDvr *leddvrp;
nxp_ip 0:da1fe3fe7093 56 LedPinName pin;
nxp_ip 0:da1fe3fe7093 57
nxp_ip 0:da1fe3fe7093 58 void pwm( int pin, float value );
nxp_ip 0:da1fe3fe7093 59 }
nxp_ip 0:da1fe3fe7093 60 ;
nxp_ip 0:da1fe3fe7093 61
nxp_ip 0:da1fe3fe7093 62 #endif // MBED_LedPwmOut