mbed rtos定时器的工作原理
写个代码验证下:
#include "mbed.h"
#include "rtos.h"
DigitalOut led1(PTB7);
DigitalOut led2(PTB6);
DigitalOut led3(PTB5);
DigitalOut led4(PTB4);
DigitalOut LEDs[4] =
{
led1, led2, led3, led4
};
void blink(void const *n)
{
LEDs[(int)n] = !LEDs[(int)n];
}
int main(void)
{
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(2000);
led_2_timer.start(1000);
led_3_timer.start(500);
led_4_timer.start(250);
Thread::wait(osWaitForever);
}
运行效果:
|