Running multiple threads on mbed using RTOS

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player_appbd

Revision:
3:7d53a2744a2b
Parent:
2:f4ad69c44c7e
Child:
4:5fdadaef5b1f
--- a/main.cpp	Sun Feb 28 23:25:52 2016 +0000
+++ b/main.cpp	Sun Feb 28 23:44:56 2016 +0000
@@ -10,10 +10,13 @@
 Mutex ulcd_mutex;
 uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin;
 DigitalOut myled(LED1);
+DigitalOut latch(p15);
+DigitalOut enable(p17);
 //Analog Out Jack
 AnalogOut DACout(p18);
 //On Board Speaker
 PwmOut PWMout(p21);
+SPI spi(p5, p6, p7);
 wave_player waver(&DACout,&PWMout);
 int playing = 1;
 
@@ -57,13 +60,44 @@
     playing = 0;
     }
 
+void RGB_LED(int red, int green, int blue) {
+    unsigned int low_color=0;
+    unsigned int high_color=0;
+    high_color=(blue<<4)|((red&0x3C0)>>6);
+    low_color=(((red&0x3F)<<10)|(green));
+    spi.write(high_color);
+    spi.write(low_color);
+    latch=1;
+    latch=0;
+}
+
+
 void led_thread(void const *args) {
-    
+    int red=0;
+    int green=0;
+    int blue=0;
+    spi.format(16,0);
+    spi.frequency(500000);
+    enable=0;
+    latch=0;
+    wait(2);
+    for (red = 0; red<50; red = red+10) {
+        for (blue = 0; blue<50; blue = blue+10) {
+            for (green = 0; green<50; green = green+10)
+
+            {
+                RGB_LED( red, green, blue);
+                wait(.25);
+            }
+        }
+    }
+
     }
 
 int main() {
     Thread thread(ulcd2_thread);
-    Thread thread2(wav_thread);
+//    Thread thread2(wav_thread);
+    Thread thread3(led_thread);
     int count2 = 0;
     while(1) {
         myled = 1;