NuMaker mbed RTOS basic (Thread)

Committer:
SHLIU1@OANBE02333.nuvoton.com
Date:
Thu Feb 25 13:04:26 2021 +0800
Revision:
13:e84e74cba750
Parent:
9:3b8bf3ce2801
Support the both V5.X and V6.X for mbed-os

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rkuo2000 0:507da9a6072b 1 #include "mbed.h"
rkuo2000 0:507da9a6072b 2 #include "rtos.h"
ccchang 9:3b8bf3ce2801 3
rkuo2000 0:507da9a6072b 4 DigitalOut led1(LED1);
rkuo2000 0:507da9a6072b 5 DigitalOut led2(LED2);
rkuo2000 0:507da9a6072b 6
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 7 void led2_thread(DigitalOut *led) {
rkuo2000 0:507da9a6072b 8 while (true) {
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 9 *led = !*led;
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 10 #if MBED_MAJOR_VERSION >= 6
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 11 ThisThread::sleep_for(1000);
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 12 #else
rkuo2000 0:507da9a6072b 13 Thread::wait(1000);
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 14 #endif
rkuo2000 0:507da9a6072b 15 }
rkuo2000 0:507da9a6072b 16 }
rkuo2000 0:507da9a6072b 17
rkuo2000 0:507da9a6072b 18 int main() {
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 19 Thread thread;
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 20
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 21 #ifdef MBED_MAJOR_VERSION
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 22 printf("Mbed OS version %d.%d.%d\r\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION);
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 23 #endif
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 24
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 25 thread.start(callback(led2_thread, &led2));
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 26
rkuo2000 0:507da9a6072b 27 while (true) {
rkuo2000 0:507da9a6072b 28 led1 = !led1;
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 29 #if MBED_MAJOR_VERSION >= 6
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 30 ThisThread::sleep_for(500);
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 31 #else
rkuo2000 0:507da9a6072b 32 Thread::wait(500);
SHLIU1@OANBE02333.nuvoton.com 13:e84e74cba750 33 #endif
rkuo2000 0:507da9a6072b 34 }
rkuo2000 0:507da9a6072b 35 }