diff options
Diffstat (limited to 'tmk_core/tool/mbed/mbed-sdk/libraries/tests/rtos/mbed/timer/main.cpp')
-rw-r--r-- | tmk_core/tool/mbed/mbed-sdk/libraries/tests/rtos/mbed/timer/main.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tmk_core/tool/mbed/mbed-sdk/libraries/tests/rtos/mbed/timer/main.cpp b/tmk_core/tool/mbed/mbed-sdk/libraries/tests/rtos/mbed/timer/main.cpp new file mode 100644 index 0000000000..3c33551b0a --- /dev/null +++ b/tmk_core/tool/mbed/mbed-sdk/libraries/tests/rtos/mbed/timer/main.cpp @@ -0,0 +1,42 @@ +#include "mbed.h" +#include "test_env.h" +#include "rtos.h" + +DigitalOut LEDs[4] = { + DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4) +}; + +void print_char(char c = '*') +{ + printf("%c", c); + fflush(stdout); +} + +void blink(void const *n) { + static int counter = 0; + const int led_id = int(n); + LEDs[led_id] = !LEDs[led_id]; + if (++counter == 75) { + print_char(); + counter = 0; + } +} + +int main(void) { + MBED_HOSTTEST_TIMEOUT(15); + MBED_HOSTTEST_SELECT(wait_us_auto); + MBED_HOSTTEST_DESCRIPTION(Timer); + MBED_HOSTTEST_START("RTOS_7"); + + RtosTimer led_1_timer(blink, osTimerPeriodic, (void *)0); + RtosTimer led_2_timer(blink, osTimerPeriodic, (void *)1); + RtosTimer led_3_timer(blink, osTimerPeriodic, (void *)2); + RtosTimer led_4_timer(blink, osTimerPeriodic, (void *)3); + + led_1_timer.start(200); + led_2_timer.start(100); + led_3_timer.start(50); + led_4_timer.start(25); + + Thread::wait(osWaitForever); +} |