Program to demonstrate NXP semiconductor's PCA9955B chip working with the BBC micro:bit

Dependencies:   PCA995xA microbit

Fork of PCA9955A_Hello by InetrfaceProducts NXP

This is a simple program that allows you to control each port on a PCA9955B connected over i2c to a BBC micro:bit using a simple USB serial communication program.

I've written it to work with the 2 digit SMD soldering kit I designed. Drop me an email at tb942@hotmail.co.uk for further info on that...

main.cpp

Committer:
nxp_ip
Date:
2015-03-19
Revision:
3:a67c21ad4173
Parent:
2:cfa5103184b1
Child:
5:9f89d6e17ff7

File content as of revision 3:a67c21ad4173:

#include "mbed.h"
#include "PCA9955A.h"

PCA9955A    led_cntlr( p28, p27, 0x02 );    //  SDA, SCL, Slave_address(option)
LedPwmOutCC led0( led_cntlr, L0  );         //  Instance for LED0 pin
LedPwmOutCC led1( led_cntlr, L1  );         //  Instance for LED1 pin
LedPwmOutCC led2( led_cntlr, L2  );         //  Instance for LED2 pin

int main()
{
    led0.current( 0.5 );    //  LED0 pin current output setting to 50%
    led1.current( 0.5 );    //  LED1 pin current output setting to 50%
    led2.current( 0.5 );    //  LED2 pin current output setting to 50%

    while(1) {
        
        for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
            led0    = p;    //  Set LED0 output PWM dutycycle as 'p'
            wait( 0.01 );
        }
        
        for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
            led1    = p;    //  Set LED1 output PWM dutycycle as 'p'
            wait( 0.01 );
        }
        
        for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
            led2    = p;    //  Set LED2 output PWM dutycycle as 'p'
            wait( 0.01 );
        }
    }
}