asd / Mbed 2 deprecated 4180lab03_multithread

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

Committer:
jderemer3
Date:
Mon Feb 27 01:45:59 2017 +0000
Revision:
0:471e3038d16a
Child:
1:554209140cec

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jderemer3 0:471e3038d16a 1 #include "mbed.h"
jderemer3 0:471e3038d16a 2 #include "rtos.h"
jderemer3 0:471e3038d16a 3 #include "RGBLed.h"
jderemer3 0:471e3038d16a 4 #include "uLCD_4DGL.h"
jderemer3 0:471e3038d16a 5
jderemer3 0:471e3038d16a 6 DigitalOut led1(LED1);
jderemer3 0:471e3038d16a 7 DigitalOut led2(LED2);
jderemer3 0:471e3038d16a 8 DigitalOut led3(LED3);
jderemer3 0:471e3038d16a 9 DigitalOut led4(LED4);
jderemer3 0:471e3038d16a 10
jderemer3 0:471e3038d16a 11 RGBLed myRGBled(p23,p22,p21); //RGB PWM pins
jderemer3 0:471e3038d16a 12
jderemer3 0:471e3038d16a 13 uLCD_4DGL uLCD(p9, p10, p11);
jderemer3 0:471e3038d16a 14
jderemer3 0:471e3038d16a 15 Thread t1;
jderemer3 0:471e3038d16a 16 Thread t2;
jderemer3 0:471e3038d16a 17 Thread t3;
jderemer3 0:471e3038d16a 18 Thread t4;
jderemer3 0:471e3038d16a 19
jderemer3 0:471e3038d16a 20 Mutex lk_LCD;
jderemer3 0:471e3038d16a 21
jderemer3 0:471e3038d16a 22 void rgb_t3() {
jderemer3 0:471e3038d16a 23 while (true) {
jderemer3 0:471e3038d16a 24 myRGBled.write(1.0,0.0,0.0); //red
jderemer3 0:471e3038d16a 25 Thread::wait(2000);
jderemer3 0:471e3038d16a 26 myRGBled.write(0.0,1.0,0.0); //green
jderemer3 0:471e3038d16a 27 Thread::wait(2000);
jderemer3 0:471e3038d16a 28 myRGBled.write(0.0,0.0,1.0); //blue
jderemer3 0:471e3038d16a 29 Thread::wait(2000);
jderemer3 0:471e3038d16a 30 }
jderemer3 0:471e3038d16a 31 }
jderemer3 0:471e3038d16a 32
jderemer3 0:471e3038d16a 33 void lcd_t1() {
jderemer3 0:471e3038d16a 34 while (true) {
jderemer3 0:471e3038d16a 35 for (int i = 0; i < 10; i++)
jderemer3 0:471e3038d16a 36 {
jderemer3 0:471e3038d16a 37 lk_LCD.lock();
jderemer3 0:471e3038d16a 38 uLCD.locate(2,2);
jderemer3 0:471e3038d16a 39 uLCD.printf("\n Hello World! \nCount by one is %d!\n", i);
jderemer3 0:471e3038d16a 40 lk_LCD.unlock();
jderemer3 0:471e3038d16a 41 Thread::wait(1000);
jderemer3 0:471e3038d16a 42 }
jderemer3 0:471e3038d16a 43 }
jderemer3 0:471e3038d16a 44 }
jderemer3 0:471e3038d16a 45
jderemer3 0:471e3038d16a 46 void lcd_t2() {
jderemer3 0:471e3038d16a 47 while (true) {
jderemer3 0:471e3038d16a 48 for (int j = 0; j < 20; j += 2)
jderemer3 0:471e3038d16a 49 {
jderemer3 0:471e3038d16a 50 lk_LCD.lock();
jderemer3 0:471e3038d16a 51 uLCD.locate(4,4);
jderemer3 0:471e3038d16a 52 uLCD.printf("\n Hello World! \nCount by two is %d!\n", j);
jderemer3 0:471e3038d16a 53 lk_LCD.unlock();
jderemer3 0:471e3038d16a 54 Thread::wait(2000);
jderemer3 0:471e3038d16a 55 }
jderemer3 0:471e3038d16a 56 }
jderemer3 0:471e3038d16a 57 }
jderemer3 0:471e3038d16a 58
jderemer3 0:471e3038d16a 59 int main() {
jderemer3 0:471e3038d16a 60 t3.start(rgb_t3);
jderemer3 0:471e3038d16a 61 t1.start(lcd_t1);
jderemer3 0:471e3038d16a 62 t2.start(lcd_t2);
jderemer3 0:471e3038d16a 63 while (true) {
jderemer3 0:471e3038d16a 64 led1 = !led1;
jderemer3 0:471e3038d16a 65 Thread::wait(500);
jderemer3 0:471e3038d16a 66 }
jderemer3 0:471e3038d16a 67 }