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

main.cpp

Committer:
jderemer3
Date:
2017-02-27
Revision:
0:471e3038d16a
Child:
1:554209140cec

File content as of revision 0:471e3038d16a:

#include "mbed.h"
#include "rtos.h"
#include "RGBLed.h"
#include "uLCD_4DGL.h"
 
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

RGBLed myRGBled(p23,p22,p21); //RGB PWM pins

uLCD_4DGL uLCD(p9, p10, p11);

Thread t1;
Thread t2;
Thread t3;
Thread t4;

Mutex lk_LCD;
 
void rgb_t3() {
    while (true) {
        myRGBled.write(1.0,0.0,0.0); //red
        Thread::wait(2000);
        myRGBled.write(0.0,1.0,0.0); //green
        Thread::wait(2000);
        myRGBled.write(0.0,0.0,1.0); //blue
        Thread::wait(2000);
    }
}

void lcd_t1() {
    while (true) {
        for (int i = 0; i < 10; i++)
        {
            lk_LCD.lock();
            uLCD.locate(2,2);
            uLCD.printf("\n Hello World! \nCount by one is %d!\n", i);
            lk_LCD.unlock();
            Thread::wait(1000);
        }
    }
}

void lcd_t2() {
    while (true) {
        for (int j = 0; j < 20; j += 2)
        {
            lk_LCD.lock();
            uLCD.locate(4,4);
            uLCD.printf("\n Hello World! \nCount by two is %d!\n", j);
            lk_LCD.unlock();
            Thread::wait(2000);
        }
    }
}
 
int main() {
    t3.start(rgb_t3);
    t1.start(lcd_t1);
    t2.start(lcd_t2);
    while (true) {
        led1 = !led1;
        Thread::wait(500);
    }
}