Hello world code for PCA9632 library. This demonstrates device class call and "LedPwmOut class API".

Dependencies:   PCA9632 mbed

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 08:38:06 2015 +0000
Revision:
2:b8c6902f2ff7
Parent:
0:71a4bafbcad2
Child:
3:0143415767e4
Library update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nxp_ip 0:71a4bafbcad2 1 #include "mbed.h"
nxp_ip 0:71a4bafbcad2 2 #include "PCA9632.h"
nxp_ip 0:71a4bafbcad2 3
nxp_ip 0:71a4bafbcad2 4 PCA9632 led_cntlr( p28, p27, 0xC4 ); // SDA, SCL, Slave_address(option)
nxp_ip 0:71a4bafbcad2 5 LedPwmOut led( led_cntlr, L0 ); // for LED0 pin
nxp_ip 0:71a4bafbcad2 6
nxp_ip 0:71a4bafbcad2 7 int main()
nxp_ip 0:71a4bafbcad2 8 {
nxp_ip 0:71a4bafbcad2 9 //
nxp_ip 0:71a4bafbcad2 10 // Here are two types of PWM control samples
nxp_ip 0:71a4bafbcad2 11 // (User can choose one of those interface to set the PWM.)
nxp_ip 0:71a4bafbcad2 12 //
nxp_ip 0:71a4bafbcad2 13 // 1st sample is using LedPwmOut API.
nxp_ip 0:71a4bafbcad2 14 // It provides similar interface like PwmOut of mbed-SDK
nxp_ip 0:71a4bafbcad2 15 //
nxp_ip 0:71a4bafbcad2 16 // 2nd sample is using PCA9632 class function.
nxp_ip 0:71a4bafbcad2 17 // the 'pwm()' function takes LED channel number and duty-ratio value
nxp_ip 0:71a4bafbcad2 18 //
nxp_ip 0:71a4bafbcad2 19
nxp_ip 0:71a4bafbcad2 20 while ( 1 ) {
nxp_ip 0:71a4bafbcad2 21
nxp_ip 0:71a4bafbcad2 22 //
nxp_ip 0:71a4bafbcad2 23 // 1st sample is using LedPwmOut API.
nxp_ip 0:71a4bafbcad2 24 // PWM control via LedPwmOut
nxp_ip 0:71a4bafbcad2 25 //
nxp_ip 0:71a4bafbcad2 26 for ( int i = 0; i < 3; i++ ) {
nxp_ip 2:b8c6902f2ff7 27 for( float p = 0.0f; p < 1.0f; p += 0.01f ) {
nxp_ip 0:71a4bafbcad2 28 led = p; // Controls LED0 pin
nxp_ip 2:b8c6902f2ff7 29 wait( 0.01 );
nxp_ip 0:71a4bafbcad2 30 }
nxp_ip 0:71a4bafbcad2 31 }
nxp_ip 0:71a4bafbcad2 32
nxp_ip 0:71a4bafbcad2 33 //
nxp_ip 0:71a4bafbcad2 34 // 2nd sample is using PCA9632 class function.
nxp_ip 0:71a4bafbcad2 35 // PWM control by device class function call
nxp_ip 0:71a4bafbcad2 36 //
nxp_ip 0:71a4bafbcad2 37 for ( int i = 0; i < 3; i++ ) {
nxp_ip 2:b8c6902f2ff7 38 for( float p = 0.0f; p < 1.0f; p += 0.01f ) {
nxp_ip 2:b8c6902f2ff7 39 led_cntlr.pwm( 3, p ); // Controls LED1 pin
nxp_ip 2:b8c6902f2ff7 40 wait( 0.01 );
nxp_ip 0:71a4bafbcad2 41 }
nxp_ip 0:71a4bafbcad2 42 }
nxp_ip 0:71a4bafbcad2 43 }
nxp_ip 0:71a4bafbcad2 44 }