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.
features/unsupported/tests/rtos/mbed/timer/main.cpp@1:2b6e8130a0ac, 2018-02-22 (annotated)
- Committer:
- calmantara186
- Date:
- Thu Feb 22 14:05:19 2018 +0000
- Revision:
- 1:2b6e8130a0ac
- Parent:
- 0:f269e3021894
mbed os
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| elessair | 0:f269e3021894 | 1 | #include "mbed.h" |
| elessair | 0:f269e3021894 | 2 | #include "test_env.h" |
| elessair | 0:f269e3021894 | 3 | #include "rtos.h" |
| elessair | 0:f269e3021894 | 4 | |
| elessair | 0:f269e3021894 | 5 | #if defined(MBED_RTOS_SINGLE_THREAD) |
| elessair | 0:f269e3021894 | 6 | #error [NOT_SUPPORTED] test not supported |
| elessair | 0:f269e3021894 | 7 | #endif |
| elessair | 0:f269e3021894 | 8 | |
| elessair | 0:f269e3021894 | 9 | DigitalOut LEDs[4] = { |
| elessair | 0:f269e3021894 | 10 | DigitalOut(LED1), DigitalOut(LED2), DigitalOut(LED3), DigitalOut(LED4) |
| elessair | 0:f269e3021894 | 11 | }; |
| elessair | 0:f269e3021894 | 12 | |
| elessair | 0:f269e3021894 | 13 | void print_char(char c = '*') |
| elessair | 0:f269e3021894 | 14 | { |
| elessair | 0:f269e3021894 | 15 | printf("%c", c); |
| elessair | 0:f269e3021894 | 16 | fflush(stdout); |
| elessair | 0:f269e3021894 | 17 | } |
| elessair | 0:f269e3021894 | 18 | |
| elessair | 0:f269e3021894 | 19 | void blink(void const *n) { |
| elessair | 0:f269e3021894 | 20 | static int counter = 0; |
| elessair | 0:f269e3021894 | 21 | const int led_id = int(n); |
| elessair | 0:f269e3021894 | 22 | LEDs[led_id] = !LEDs[led_id]; |
| elessair | 0:f269e3021894 | 23 | if (++counter == 75) { |
| elessair | 0:f269e3021894 | 24 | print_char(); |
| elessair | 0:f269e3021894 | 25 | counter = 0; |
| elessair | 0:f269e3021894 | 26 | } |
| elessair | 0:f269e3021894 | 27 | } |
| elessair | 0:f269e3021894 | 28 | |
| elessair | 0:f269e3021894 | 29 | int main(void) { |
| elessair | 0:f269e3021894 | 30 | MBED_HOSTTEST_TIMEOUT(15); |
| elessair | 0:f269e3021894 | 31 | MBED_HOSTTEST_SELECT(wait_us_auto); |
| elessair | 0:f269e3021894 | 32 | MBED_HOSTTEST_DESCRIPTION(Timer); |
| elessair | 0:f269e3021894 | 33 | MBED_HOSTTEST_START("RTOS_7"); |
| elessair | 0:f269e3021894 | 34 | |
| elessair | 0:f269e3021894 | 35 | RtosTimer led_1_timer(blink, osTimerPeriodic, (void *)0); |
| elessair | 0:f269e3021894 | 36 | RtosTimer led_2_timer(blink, osTimerPeriodic, (void *)1); |
| elessair | 0:f269e3021894 | 37 | RtosTimer led_3_timer(blink, osTimerPeriodic, (void *)2); |
| elessair | 0:f269e3021894 | 38 | RtosTimer led_4_timer(blink, osTimerPeriodic, (void *)3); |
| elessair | 0:f269e3021894 | 39 | |
| elessair | 0:f269e3021894 | 40 | led_1_timer.start(200); |
| elessair | 0:f269e3021894 | 41 | led_2_timer.start(100); |
| elessair | 0:f269e3021894 | 42 | led_3_timer.start(50); |
| elessair | 0:f269e3021894 | 43 | led_4_timer.start(25); |
| elessair | 0:f269e3021894 | 44 | |
| elessair | 0:f269e3021894 | 45 | Thread::wait(osWaitForever); |
| elessair | 0:f269e3021894 | 46 | } |