Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510
features/unsupported/tests/rtos/mbed/timer/main.cpp@0:098463de4c5d, 2017-01-25 (annotated)
- Committer:
- group-onsemi
- Date:
- Wed Jan 25 20:34:15 2017 +0000
- Revision:
- 0:098463de4c5d
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
group-onsemi | 0:098463de4c5d | 1 | #include "mbed.h" |
group-onsemi | 0:098463de4c5d | 2 | #include "test_env.h" |
group-onsemi | 0:098463de4c5d | 3 | #include "rtos.h" |
group-onsemi | 0:098463de4c5d | 4 | |
group-onsemi | 0:098463de4c5d | 5 | #if defined(MBED_RTOS_SINGLE_THREAD) |
group-onsemi | 0:098463de4c5d | 6 | #error [NOT_SUPPORTED] test not supported |
group-onsemi | 0:098463de4c5d | 7 | #endif |
group-onsemi | 0:098463de4c5d | 8 | |
group-onsemi | 0:098463de4c5d | 9 | DigitalOut LEDs[4] = { |
group-onsemi | 0:098463de4c5d | 10 | DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4) |
group-onsemi | 0:098463de4c5d | 11 | }; |
group-onsemi | 0:098463de4c5d | 12 | |
group-onsemi | 0:098463de4c5d | 13 | void print_char(char c = '*') |
group-onsemi | 0:098463de4c5d | 14 | { |
group-onsemi | 0:098463de4c5d | 15 | printf("%c", c); |
group-onsemi | 0:098463de4c5d | 16 | fflush(stdout); |
group-onsemi | 0:098463de4c5d | 17 | } |
group-onsemi | 0:098463de4c5d | 18 | |
group-onsemi | 0:098463de4c5d | 19 | void blink(void const *n) { |
group-onsemi | 0:098463de4c5d | 20 | static int counter = 0; |
group-onsemi | 0:098463de4c5d | 21 | const int led_id = int(n); |
group-onsemi | 0:098463de4c5d | 22 | LEDs[led_id] = !LEDs[led_id]; |
group-onsemi | 0:098463de4c5d | 23 | if (++counter == 75) { |
group-onsemi | 0:098463de4c5d | 24 | print_char(); |
group-onsemi | 0:098463de4c5d | 25 | counter = 0; |
group-onsemi | 0:098463de4c5d | 26 | } |
group-onsemi | 0:098463de4c5d | 27 | } |
group-onsemi | 0:098463de4c5d | 28 | |
group-onsemi | 0:098463de4c5d | 29 | int main(void) { |
group-onsemi | 0:098463de4c5d | 30 | MBED_HOSTTEST_TIMEOUT(15); |
group-onsemi | 0:098463de4c5d | 31 | MBED_HOSTTEST_SELECT(wait_us_auto); |
group-onsemi | 0:098463de4c5d | 32 | MBED_HOSTTEST_DESCRIPTION(Timer); |
group-onsemi | 0:098463de4c5d | 33 | MBED_HOSTTEST_START("RTOS_7"); |
group-onsemi | 0:098463de4c5d | 34 | |
group-onsemi | 0:098463de4c5d | 35 | RtosTimer led_1_timer(blink, osTimerPeriodic, (void *)0); |
group-onsemi | 0:098463de4c5d | 36 | RtosTimer led_2_timer(blink, osTimerPeriodic, (void *)1); |
group-onsemi | 0:098463de4c5d | 37 | RtosTimer led_3_timer(blink, osTimerPeriodic, (void *)2); |
group-onsemi | 0:098463de4c5d | 38 | RtosTimer led_4_timer(blink, osTimerPeriodic, (void *)3); |
group-onsemi | 0:098463de4c5d | 39 | |
group-onsemi | 0:098463de4c5d | 40 | led_1_timer.start(200); |
group-onsemi | 0:098463de4c5d | 41 | led_2_timer.start(100); |
group-onsemi | 0:098463de4c5d | 42 | led_3_timer.start(50); |
group-onsemi | 0:098463de4c5d | 43 | led_4_timer.start(25); |
group-onsemi | 0:098463de4c5d | 44 | |
group-onsemi | 0:098463de4c5d | 45 | Thread::wait(osWaitForever); |
group-onsemi | 0:098463de4c5d | 46 | } |