Running multiple threads on mbed using RTOS
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player_appbd
Diff: main.cpp
- Revision:
- 0:fdcdbc5499f7
- Child:
- 1:2129bb91c172
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Feb 28 21:58:15 2016 +0000 @@ -0,0 +1,44 @@ +#include "mbed.h" +#include "rtos.h" +#include "uLCD_4DGL.h" +#include "SDFileSystem.h" + +SDFileSystem sd(p5, p6, p7, p8, "sd"); +Serial pc(USBTX, USBRX); +Mutex ulcd_mutex; +uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin; +DigitalOut myled(LED1); + +void ulcd2_thread(void const *args) { + while(true) { + ulcd_mutex.lock(); + pc.printf("Activated mutex lock on uLCD screen: ulcd2_thread"); + uLCD.cls(); + uLCD.printf("\nECE 4180 L3: RTOS\n"); //Default Green on black text + uLCD.printf("\nWes Schon Nick Liu"); + uLCD.text_width(4); //4X size text + uLCD.text_height(4); + Thread::wait(3000); + ulcd_mutex.unlock(); + } + } + +int main() { + Thread thread(ulcd2_thread); + while(1) { + myled = 1; + Thread::wait(200); + myled = 0; + Thread::wait(200); + ulcd_mutex.lock(); + uLCD.cls(); + //SD card needed with image and video files for last two demos + uLCD.cls(); + uLCD.media_init(); + uLCD.printf("\n\nAn SD card is needed for image and video data"); + uLCD.set_sector_address(0x0000, 0x0000); + uLCD.display_video(0,0); + Thread::wait(3000); + ulcd_mutex.unlock(); + } +}