On the FRDM-KL25Z, when I declare pins PTA5 and PTD2 as PwmOut pins, they are locked together and can not be independently controlled. It doesn't matter if I change the PWM of PTA5 or PTD2. Whichever one is changed, the other one follows it. The simple code below should keep pin PTD2 at 0% pwm while pin PTA5 should switch between 50% and 0% every 0.5 seconds. Pin PTA5 does alternate between 50% and 0% pwm, but instead of staying at 0% pwm, pin PTD2 follows pin PTA5.

Dependencies:   mbed

Fork of frdm_rgbled by Freescale

Revision:
1:eabc6f5b51d6
Parent:
0:cf8a48b1fb23
Child:
2:03e5c29343d1
--- a/main.cpp	Thu Oct 11 14:08:32 2012 +0000
+++ b/main.cpp	Fri Oct 12 13:49:40 2012 +0000
@@ -1,12 +1,22 @@
 #include "mbed.h"
 
-BusOut rgb(LED_RED,LED_GREEN,LED_BLUE);
+PwmOut r (LED_RED);
+PwmOut g (LED_GREEN);
+PwmOut b (LED_BLUE);
 
-int main() {
-    int i=0;   
+int main()
+{
+    r.period(0.001);
+    g.period(0.001);
+    b.period(0.001);
+
     while(1) {
-        rgb=i;
-        wait (0.25);
-        i++;            
-     }
+        for(float i = 0.0; i < 1.0 ; i += 0.001) {
+            float p = 3 * i;
+            r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0);
+            g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p);
+            b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0);  ;  
+            wait (0.0025);
+        }
+    }
 }
\ No newline at end of file