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

Files at this revision

API Documentation at this revision

Comitter:
nxp_ip
Date:
Wed Mar 04 10:33:14 2015 +0000
Parent:
1:8b5c26cc269c
Child:
3:a67c21ad4173
Commit message:
Library updated

Changed in this revision

PCA995xA.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/PCA995xA.lib	Wed Feb 25 06:48:49 2015 +0000
+++ b/PCA995xA.lib	Wed Mar 04 10:33:14 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/nxp_ip/code/PCA995xA/#a624e2eeccac
+http://mbed.org/users/nxp_ip/code/PCA995xA/#d2865e756169
--- a/main.cpp	Wed Feb 25 06:48:49 2015 +0000
+++ b/main.cpp	Wed Mar 04 10:33:14 2015 +0000
@@ -17,3 +17,59 @@
         led_cntlr.pwm( ALLPORTS, 0.0 ); //  Set all ports output PWM 0%
     }
 }
+
+
+
+#if 0  //  Sample of using LedPwmOut API
+#include "mbed.h"
+#include "PCA9955A.h"
+
+PCA9955A    led_cntlr( p28, p27, 0x02 );
+LedPwmOutCC   leds[]  = {
+    LedPwmOutCC( led_cntlr, L0  ),
+    LedPwmOutCC( led_cntlr, L4  ),
+    LedPwmOutCC( led_cntlr, L8  ),
+    LedPwmOutCC( led_cntlr, L12 ),
+
+    LedPwmOutCC( led_cntlr, L1  ),
+    LedPwmOutCC( led_cntlr, L5  ),
+    LedPwmOutCC( led_cntlr, L9  ),
+    LedPwmOutCC( led_cntlr, L13 ),
+
+    LedPwmOutCC( led_cntlr, L2  ),
+    LedPwmOutCC( led_cntlr, L6  ),
+    LedPwmOutCC( led_cntlr, L10  ),
+    LedPwmOutCC( led_cntlr, L14 ),
+
+    LedPwmOutCC( led_cntlr, L3  ),
+    LedPwmOutCC( led_cntlr, L7  ),
+    LedPwmOutCC( led_cntlr, L11  ),
+    LedPwmOutCC( led_cntlr, L15 ),
+
+};
+
+int main()
+{
+    for ( int ch = 0; ch < 16; ch++ )
+        leds[ ch ]  = 1.0;
+    for ( int ch = 0; ch < 16; ch++ )
+        leds[ ch ].current( 0.0 );
+
+    while(1) {
+        for ( int ch = 0; ch < 16; ch++ ) {
+            for ( float p = 0.0; p < 1.0; p += 0.01 ) {
+//                leds[ ch ]  = p;
+                leds[ ch ].current( p );
+                wait( 0.01 );
+            }
+        }
+        for ( float c = 1.0; c > 0.0; c -= 0.01 ) {
+            for ( int ch = 0; ch < 16; ch++ ) {
+                leds[ ch ].current( c );
+
+            }
+            wait( 0.01 );
+        }
+    }
+}
+#endif
\ No newline at end of file