-
Dependencies: mbed MPU6050 mbed-rtos SpiFlash25 HMC5883L BMP085 flash-fs ledControl2
Diff: main.cpp
- Revision:
- 0:b487734d687d
- Child:
- 1:42e428d934fe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Oct 16 14:31:19 2018 +0000 @@ -0,0 +1,75 @@ +#include "mbed.h" +#include "uLCD_4DGL.h" +#include "rtos.h" +#include "stdio.h" + +uLCD_4DGL uLCD(p13,p14,p30); +PwmOut RGBLED_r(p23); +PwmOut RGBLED_g(p24); +PwmOut RGBLED_b(p25); +Mutex lcd_mutex; + + +void thread1(void const *args) +{ + while(true) { // thread loop + RGBLED_r = 0.5 + (rand() % 11)/20.0; + RGBLED_g = 0.5 + (rand() % 11)/20.0; + RGBLED_b = 0.5 + (rand() % 11)/20.0; + Thread::wait(300); // wait 1.5s + } +} + +void thread2(void const *args) +{ + while(true) { // thread loop + lcd_mutex.lock(); + // basic printf demo = 16 by 18 characters on screen + uLCD.printf("\nHello uLCD World\n"); //Default Green on black text + uLCD.printf("\n Starting Demo..."); + uLCD.text_width(4); //4X size text + uLCD.text_height(4); + uLCD.color(RED); + for (int i=10; i>=6; --i) { + uLCD.locate(1,2); + uLCD.printf("%2D",i); + wait(.5); + } + uLCD.cls(); + lcd_mutex.unlock(); + Thread::wait(1000); + } +} + + +void thread3(void const *args) +{ + while(true) { // thread loop + lcd_mutex.lock(); + // basic printf demo = 16 by 18 characters on screen + uLCD.printf("\nHello uLCD World\n"); //Default Green on black text + uLCD.printf("\n Starting Demo..."); + uLCD.text_width(4); //4X size text + uLCD.text_height(4); + uLCD.color(RED); + for (int i=5; i>=0; --i) { + uLCD.locate(1,2); + uLCD.printf("%2D",i); + wait(.5); + } + uLCD.cls(); + lcd_mutex.unlock(); + Thread::wait(1000); + } +} + +int main() { + Thread t1(thread1); + Thread t2(thread2); + Thread t3(thread3); + while(1) { + lcd_mutex.lock(); + lcd_mutex.unlock(); + Thread::wait(500); + } +}