Hello world code for PCA9624 class library. The PCA9624 is a 8-channel Fm+ I2C-bus 100mA/40 V LED driver. This program shows its basic operation of PWM output.

Dependencies:   PCA962x mbed

Please refer to the component page for details

8, 16 & 24-channel Fm+ I2C-bus 100mA/40 V LED driver

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 "PCA9624.h"

PCA9624     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 06:11:42 2015 +0000
Revision:
1:e2289f758d62
Parent:
0:50ca448b1ffd
Child:
2:fb3d856830ca
Version, including LedPwmOut enabled library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nxp_ip 0:50ca448b1ffd 1 #include "mbed.h"
nxp_ip 0:50ca448b1ffd 2
nxp_ip 0:50ca448b1ffd 3 #include "PCA9624.h"
nxp_ip 0:50ca448b1ffd 4 PCA9624 led_cntlr( p28, p27, 0x3E ); // SDA, SCL, Slave_address(option)
nxp_ip 0:50ca448b1ffd 5
nxp_ip 0:50ca448b1ffd 6 int main()
nxp_ip 0:50ca448b1ffd 7 {
nxp_ip 0:50ca448b1ffd 8 while(1) {
nxp_ip 0:50ca448b1ffd 9 for ( int port = 0; port < led_cntlr.number_of_ports(); port++ ) {
nxp_ip 0:50ca448b1ffd 10 for ( int i = 1; i <= 100; i++ ) {
nxp_ip 0:50ca448b1ffd 11 led_cntlr.pwm( port, (float)i / 100.0 );
nxp_ip 0:50ca448b1ffd 12 wait( 0.01 );
nxp_ip 0:50ca448b1ffd 13 }
nxp_ip 0:50ca448b1ffd 14 }
nxp_ip 0:50ca448b1ffd 15 led_cntlr.pwm( ALLPORTS, 0.0 );
nxp_ip 0:50ca448b1ffd 16 }
nxp_ip 0:50ca448b1ffd 17 }
nxp_ip 1:e2289f758d62 18
nxp_ip 1:e2289f758d62 19
nxp_ip 1:e2289f758d62 20
nxp_ip 1:e2289f758d62 21
nxp_ip 1:e2289f758d62 22 #if 0 // Sample of using LedPwmOut API
nxp_ip 1:e2289f758d62 23 #include "mbed.h"
nxp_ip 1:e2289f758d62 24 #include "PCA9626.h"
nxp_ip 1:e2289f758d62 25 #include "PCA9622.h"
nxp_ip 1:e2289f758d62 26 #include "PCA9624.h"
nxp_ip 1:e2289f758d62 27
nxp_ip 1:e2289f758d62 28 PCA9624 led_cntlr( p28, p27, 0x3E ); // SDA, SCL, Slave_address(option)
nxp_ip 1:e2289f758d62 29
nxp_ip 1:e2289f758d62 30 LedPwmOut leds[] = {
nxp_ip 1:e2289f758d62 31 LedPwmOut( led_cntlr, L0 ),
nxp_ip 1:e2289f758d62 32 LedPwmOut( led_cntlr, L1 ),
nxp_ip 1:e2289f758d62 33 LedPwmOut( led_cntlr, L2 ),
nxp_ip 1:e2289f758d62 34 LedPwmOut( led_cntlr, L3 ),
nxp_ip 1:e2289f758d62 35 LedPwmOut( led_cntlr, L4 ),
nxp_ip 1:e2289f758d62 36 LedPwmOut( led_cntlr, L5 ),
nxp_ip 1:e2289f758d62 37 LedPwmOut( led_cntlr, L6 ),
nxp_ip 1:e2289f758d62 38 LedPwmOut( led_cntlr, L7 ),
nxp_ip 1:e2289f758d62 39 };
nxp_ip 1:e2289f758d62 40
nxp_ip 1:e2289f758d62 41 int main()
nxp_ip 1:e2289f758d62 42 {
nxp_ip 1:e2289f758d62 43 while(1) {
nxp_ip 1:e2289f758d62 44 for ( int ch = 0; ch < 8; ch++ ) {
nxp_ip 1:e2289f758d62 45 for ( float p = 0.0; p < 1.0; p += 0.01 ) {
nxp_ip 1:e2289f758d62 46 leds[ ch ] = p;
nxp_ip 1:e2289f758d62 47 wait( 0.01 );
nxp_ip 1:e2289f758d62 48 }
nxp_ip 1:e2289f758d62 49 }
nxp_ip 1:e2289f758d62 50 }
nxp_ip 1:e2289f758d62 51 }
nxp_ip 1:e2289f758d62 52 #endif