![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
change in mbed rtos library
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed
Fork of rtos_basic by
Diff: main.cpp
- Revision:
- 12:fb46c68fa360
- Parent:
- 11:0309bef74ba8
- Child:
- 13:b0bfe7f4472a
diff -r 0309bef74ba8 -r fb46c68fa360 main.cpp --- a/main.cpp Wed Feb 15 14:04:02 2017 -0600 +++ b/main.cpp Wed Feb 28 07:20:20 2018 +0000 @@ -1,22 +1,95 @@ #include "mbed.h" #include "rtos.h" - +#include "uLCD_4DGL.h" +#include "RGB_LED.h" + + DigitalOut led1(LED1); DigitalOut led2(LED2); Thread thread; - -void led2_thread() { - while (true) { - led2 = !led2; - Thread::wait(1000); - } -} +Thread thread2; +Thread thread3; +Thread thread4; +Mutex stdio_mutex; +uLCD_4DGL uLCD(p28,p27,p29); +RGBLed myRGBled(p22,p23,p24); +void printName() { + stdio_mutex.lock(); + uLCD.printf("\nMy name is Barry Johnson-Smith\n"); + //Time to dance at same time as color changing. + uLCD.cls(); + stdio_mutex.unlock(); + } +void colorULCD() { + stdio_mutex.lock(); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,RED); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,BLUE); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,RED); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20, 255*65536+165*256+0); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,255*65536+255*256+0); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,GREEN); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,BLUE); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,75*65536+0*256+130); + Thread::wait(500); + uLCD.line(60,80,60,0,128*65536+128*256+128); + uLCD.filled_circle(60,60,20,128*65536+0*256+128); + stdio_mutex.unlock(); + } -int main() { - thread.start(led2_thread); - +void uLCD_thread1() { + while (true) { + colorULCD(); + Thread::wait(500); + } + +} +void uLCD_thread2() { while (true) { - led1 = !led1; - Thread::wait(500); + printName(); + Thread::wait(1000); } + + } +void RGB_LED() { + while(true) { + myRGBled.write(1.0f, 0, 0); // turn the RGB LED red + Thread::wait(500); // wait for 1 second + myRGBled.write(0, 0, 255); // turn the RGB LED blue + Thread::wait(500); // wait for 1 second + // Example blended myRGBled.writes: + myRGBled.write(255,0,0); // turn the RGB LED red + Thread::wait(500); // wait for 1 second + myRGBled.write(237,109,0); // turn the RGB LED orange + Thread::wait(500); // wait for 1 second + myRGBled.write(255,215,0); // turn the RGB LED yellow + Thread::wait(500); // wait for 1 second + myRGBled.write(34,139,34); // turn the RGB LED green + Thread::wait(500); // wait for 1 second + myRGBled.write(0,0,255); // turn the RGB LED blue + Thread::wait(050); // wait for 1 second + myRGBled.write(0,46,90); // turn the RGB LED indigo + Thread::wait(500); // wait for 1 second + myRGBled.write(128,0,128); // turn the RGB LED purple + Thread::wait(500); // wait for 1 second + } +} +int main() { + thread.start(uLCD_thread1); + //thread2.start(uLCD_thread2); + thread3.start(RGB_LED); }