Hello world code for PCA9622 class library. The PCA9622 is a 16-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 "PCA9622.h"

PCA9622     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:37:07 2015 +0000
Revision:
1:bf55a593bb79
Parent:
0:50dfba014c21
Child:
3:bd423ccaade9
version which including LedPwmOut API enabled library

Who changed what in which revision?

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