RGB Spectrum Fader. A nice RGB color spectrum cycling Demo

Dependencies:   mbed

Fork of frdm_rgbled by Freescale

Revision:
7:a557f5584f83
Parent:
5:14891bb08b35
Child:
8:a6c27db26c21
--- a/main.cpp	Fri Feb 21 16:14:34 2014 +0000
+++ b/main.cpp	Fri May 30 14:30:43 2014 +0000
@@ -2,17 +2,35 @@
 
 PwmOut r(LED_RED);
 PwmOut g(LED_GREEN);
+PwmOut b(LED_BLUE);
 
-int main() {
-    r.period(0.001);
-    g.period(0.001);
+    float color,red,green,blue;
+    float colorRange = 1024;
+    short unsigned i;
+
+int main() 
+{
+
+    
+    r.period(0.01);
+    g.period(0.01);
+    b.period(0.01);
 
-    while (true) {
-        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);
-            wait (0.0025);
+    while (true) 
+    {
+        for (i=0; i<=colorRange; i++)
+        {    
+            color = (1/colorRange)*i;
+             
+            if(color >= 0 && color <= 0.3333 ) { red = 0.3333-color; green = color; blue = 0; }
+            if(color > 0.3333 && color <= 0.6666) { red = 0; green =0.6666-color; blue = color-0.3333; }
+            if(color > 0.6666 && color <= 1) { red = color-0.6666; green = 0; blue = 1-color; }
+            
+            r=1-red;
+            g=1-green;
+            b=1-blue;
+
+            wait(0.1);
         }
     }
 }
\ No newline at end of file