change in mbed rtos library

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

Fork of rtos_basic by mbed official

Committer:
bjs9
Date:
Wed Feb 28 07:20:20 2018 +0000
Revision:
12:fb46c68fa360
Parent:
11:0309bef74ba8
Child:
13:b0bfe7f4472a
lab3part3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:491820ee784d 1 #include "mbed.h"
mbed_official 11:0309bef74ba8 2 #include "rtos.h"
bjs9 12:fb46c68fa360 3 #include "uLCD_4DGL.h"
bjs9 12:fb46c68fa360 4 #include "RGB_LED.h"
bjs9 12:fb46c68fa360 5
bjs9 12:fb46c68fa360 6
emilmont 1:491820ee784d 7 DigitalOut led1(LED1);
emilmont 1:491820ee784d 8 DigitalOut led2(LED2);
geky 7:8d9919175929 9 Thread thread;
bjs9 12:fb46c68fa360 10 Thread thread2;
bjs9 12:fb46c68fa360 11 Thread thread3;
bjs9 12:fb46c68fa360 12 Thread thread4;
bjs9 12:fb46c68fa360 13 Mutex stdio_mutex;
bjs9 12:fb46c68fa360 14 uLCD_4DGL uLCD(p28,p27,p29);
bjs9 12:fb46c68fa360 15 RGBLed myRGBled(p22,p23,p24);
bjs9 12:fb46c68fa360 16 void printName() {
bjs9 12:fb46c68fa360 17 stdio_mutex.lock();
bjs9 12:fb46c68fa360 18 uLCD.printf("\nMy name is Barry Johnson-Smith\n");
bjs9 12:fb46c68fa360 19 //Time to dance at same time as color changing.
bjs9 12:fb46c68fa360 20 uLCD.cls();
bjs9 12:fb46c68fa360 21 stdio_mutex.unlock();
bjs9 12:fb46c68fa360 22 }
bjs9 12:fb46c68fa360 23 void colorULCD() {
bjs9 12:fb46c68fa360 24 stdio_mutex.lock();
bjs9 12:fb46c68fa360 25 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 26 uLCD.filled_circle(60,60,20,RED);
bjs9 12:fb46c68fa360 27 Thread::wait(500);
bjs9 12:fb46c68fa360 28 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 29 uLCD.filled_circle(60,60,20,BLUE);
bjs9 12:fb46c68fa360 30 Thread::wait(500);
bjs9 12:fb46c68fa360 31 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 32 uLCD.filled_circle(60,60,20,RED);
bjs9 12:fb46c68fa360 33 Thread::wait(500);
bjs9 12:fb46c68fa360 34 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 35 uLCD.filled_circle(60,60,20, 255*65536+165*256+0);
bjs9 12:fb46c68fa360 36 Thread::wait(500);
bjs9 12:fb46c68fa360 37 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 38 uLCD.filled_circle(60,60,20,255*65536+255*256+0);
bjs9 12:fb46c68fa360 39 Thread::wait(500);
bjs9 12:fb46c68fa360 40 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 41 uLCD.filled_circle(60,60,20,GREEN);
bjs9 12:fb46c68fa360 42 Thread::wait(500);
bjs9 12:fb46c68fa360 43 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 44 uLCD.filled_circle(60,60,20,BLUE);
bjs9 12:fb46c68fa360 45 Thread::wait(500);
bjs9 12:fb46c68fa360 46 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 47 uLCD.filled_circle(60,60,20,75*65536+0*256+130);
bjs9 12:fb46c68fa360 48 Thread::wait(500);
bjs9 12:fb46c68fa360 49 uLCD.line(60,80,60,0,128*65536+128*256+128);
bjs9 12:fb46c68fa360 50 uLCD.filled_circle(60,60,20,128*65536+0*256+128);
bjs9 12:fb46c68fa360 51 stdio_mutex.unlock();
bjs9 12:fb46c68fa360 52 }
emilmont 1:491820ee784d 53
bjs9 12:fb46c68fa360 54 void uLCD_thread1() {
bjs9 12:fb46c68fa360 55 while (true) {
bjs9 12:fb46c68fa360 56 colorULCD();
bjs9 12:fb46c68fa360 57 Thread::wait(500);
bjs9 12:fb46c68fa360 58 }
bjs9 12:fb46c68fa360 59
bjs9 12:fb46c68fa360 60 }
bjs9 12:fb46c68fa360 61 void uLCD_thread2() {
emilmont 1:491820ee784d 62 while (true) {
bjs9 12:fb46c68fa360 63 printName();
bjs9 12:fb46c68fa360 64 Thread::wait(1000);
emilmont 1:491820ee784d 65 }
bjs9 12:fb46c68fa360 66
bjs9 12:fb46c68fa360 67 }
bjs9 12:fb46c68fa360 68 void RGB_LED() {
bjs9 12:fb46c68fa360 69 while(true) {
bjs9 12:fb46c68fa360 70 myRGBled.write(1.0f, 0, 0); // turn the RGB LED red
bjs9 12:fb46c68fa360 71 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 72 myRGBled.write(0, 0, 255); // turn the RGB LED blue
bjs9 12:fb46c68fa360 73 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 74 // Example blended myRGBled.writes:
bjs9 12:fb46c68fa360 75 myRGBled.write(255,0,0); // turn the RGB LED red
bjs9 12:fb46c68fa360 76 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 77 myRGBled.write(237,109,0); // turn the RGB LED orange
bjs9 12:fb46c68fa360 78 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 79 myRGBled.write(255,215,0); // turn the RGB LED yellow
bjs9 12:fb46c68fa360 80 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 81 myRGBled.write(34,139,34); // turn the RGB LED green
bjs9 12:fb46c68fa360 82 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 83 myRGBled.write(0,0,255); // turn the RGB LED blue
bjs9 12:fb46c68fa360 84 Thread::wait(050); // wait for 1 second
bjs9 12:fb46c68fa360 85 myRGBled.write(0,46,90); // turn the RGB LED indigo
bjs9 12:fb46c68fa360 86 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 87 myRGBled.write(128,0,128); // turn the RGB LED purple
bjs9 12:fb46c68fa360 88 Thread::wait(500); // wait for 1 second
bjs9 12:fb46c68fa360 89 }
bjs9 12:fb46c68fa360 90 }
bjs9 12:fb46c68fa360 91 int main() {
bjs9 12:fb46c68fa360 92 thread.start(uLCD_thread1);
bjs9 12:fb46c68fa360 93 //thread2.start(uLCD_thread2);
bjs9 12:fb46c68fa360 94 thread3.start(RGB_LED);
emilmont 1:491820ee784d 95 }