Program to demonstrate NXP semiconductor's PCA9955B chip working with the BBC micro:bit
Dependencies: PCA995xA microbit
Fork of PCA9955A_Hello by
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@3:a67c21ad4173, 2015-03-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |