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...

Committer:
nxp_ip
Date:
Thu Mar 19 08:42:39 2015 +0000
Revision:
3:a67c21ad4173
Parent:
2:cfa5103184b1
Child:
5:9f89d6e17ff7
Updated to use high-level-API: LedPwmOut

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nxp_ip 2:cfa5103184b1 1 #include "mbed.h"
nxp_ip 2:cfa5103184b1 2 #include "PCA9955A.h"
nxp_ip 2:cfa5103184b1 3
nxp_ip 3:a67c21ad4173 4 PCA9955A led_cntlr( p28, p27, 0x02 ); // SDA, SCL, Slave_address(option)
nxp_ip 3:a67c21ad4173 5 LedPwmOutCC led0( led_cntlr, L0 ); // Instance for LED0 pin
nxp_ip 3:a67c21ad4173 6 LedPwmOutCC led1( led_cntlr, L1 ); // Instance for LED1 pin
nxp_ip 3:a67c21ad4173 7 LedPwmOutCC led2( led_cntlr, L2 ); // Instance for LED2 pin
nxp_ip 2:cfa5103184b1 8
nxp_ip 2:cfa5103184b1 9 int main()
nxp_ip 2:cfa5103184b1 10 {
nxp_ip 3:a67c21ad4173 11 led0.current( 0.5 ); // LED0 pin current output setting to 50%
nxp_ip 3:a67c21ad4173 12 led1.current( 0.5 ); // LED1 pin current output setting to 50%
nxp_ip 3:a67c21ad4173 13 led2.current( 0.5 ); // LED2 pin current output setting to 50%
nxp_ip 2:cfa5103184b1 14
nxp_ip 2:cfa5103184b1 15 while(1) {
nxp_ip 3:a67c21ad4173 16
nxp_ip 3:a67c21ad4173 17 for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
nxp_ip 3:a67c21ad4173 18 led0 = p; // Set LED0 output PWM dutycycle as 'p'
nxp_ip 3:a67c21ad4173 19 wait( 0.01 );
nxp_ip 2:cfa5103184b1 20 }
nxp_ip 3:a67c21ad4173 21
nxp_ip 3:a67c21ad4173 22 for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
nxp_ip 3:a67c21ad4173 23 led1 = p; // Set LED1 output PWM dutycycle as 'p'
nxp_ip 3:a67c21ad4173 24 wait( 0.01 );
nxp_ip 3:a67c21ad4173 25 }
nxp_ip 3:a67c21ad4173 26
nxp_ip 3:a67c21ad4173 27 for ( float p = 1.0; p >= 0.0; p -= 0.01 ) {
nxp_ip 3:a67c21ad4173 28 led2 = p; // Set LED2 output PWM dutycycle as 'p'
nxp_ip 2:cfa5103184b1 29 wait( 0.01 );
nxp_ip 2:cfa5103184b1 30 }
nxp_ip 2:cfa5103184b1 31 }
nxp_ip 2:cfa5103184b1 32 }