Rizky Ardi Maulana / mbed-os
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?

UserRevisionLine numberNew 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 }