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 08:31:50 2015 +0000
Revision:
2:fb3d856830ca
Parent:
1:e2289f758d62
Child:
3:6b4a4f901b68
Library update

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 2:fb3d856830ca 21 #if 0 // Sample of using LedPwmOut API
nxp_ip 1:e2289f758d62 22 #include "mbed.h"
nxp_ip 1:e2289f758d62 23 #include "PCA9626.h"
nxp_ip 1:e2289f758d62 24 #include "PCA9622.h"
nxp_ip 1:e2289f758d62 25 #include "PCA9624.h"
nxp_ip 1:e2289f758d62 26
nxp_ip 1:e2289f758d62 27 PCA9624 led_cntlr( p28, p27, 0x3E ); // SDA, SCL, Slave_address(option)
nxp_ip 1:e2289f758d62 28
nxp_ip 1:e2289f758d62 29 LedPwmOut leds[] = {
nxp_ip 1:e2289f758d62 30 LedPwmOut( led_cntlr, L0 ),
nxp_ip 1:e2289f758d62 31 LedPwmOut( led_cntlr, L1 ),
nxp_ip 1:e2289f758d62 32 LedPwmOut( led_cntlr, L2 ),
nxp_ip 1:e2289f758d62 33 LedPwmOut( led_cntlr, L3 ),
nxp_ip 1:e2289f758d62 34 LedPwmOut( led_cntlr, L4 ),
nxp_ip 1:e2289f758d62 35 LedPwmOut( led_cntlr, L5 ),
nxp_ip 1:e2289f758d62 36 LedPwmOut( led_cntlr, L6 ),
nxp_ip 1:e2289f758d62 37 LedPwmOut( led_cntlr, L7 ),
nxp_ip 1:e2289f758d62 38 };
nxp_ip 1:e2289f758d62 39
nxp_ip 1:e2289f758d62 40 int main()
nxp_ip 1:e2289f758d62 41 {
nxp_ip 1:e2289f758d62 42 while(1) {
nxp_ip 1:e2289f758d62 43 for ( int ch = 0; ch < 8; ch++ ) {
nxp_ip 1:e2289f758d62 44 for ( float p = 0.0; p < 1.0; p += 0.01 ) {
nxp_ip 1:e2289f758d62 45 leds[ ch ] = p;
nxp_ip 1:e2289f758d62 46 wait( 0.01 );
nxp_ip 1:e2289f758d62 47 }
nxp_ip 1:e2289f758d62 48 }
nxp_ip 1:e2289f758d62 49 }
nxp_ip 1:e2289f758d62 50 }
nxp_ip 1:e2289f758d62 51 #endif