[RTT 루틴 연습]4.4 타이머 제어
1269 단어 RT-Thread
여기 서 처음에 정시 주 기 는 100 이 고 프로그램 에서 사용 합 니 다.
4.567913.정시 주기 가 미리 설 정 된 것 과 같은 지 확인 합 니 다.8 회 이후 사용
rt_timer_control
(),정시 주 기 를 3 천 으로 바꾼다.실제 효 과 는 인쇄 된 tick 정보 와 직관 적 인 느낌 을 통 해 모두 검증 할 수 있다.프로그램:
rt_tick_get()-tick
결과:
#include
static rt_timer_t timer1;
//static rt_timer_t timer2;
static rt_uint8_t count;
static rt_tick_t tick;
static void timeout1(void* parameter)
{
rt_tick_t timeout = 3000;
rt_kprintf("periodic timer is timeout
");
rt_kprintf("the time set is %d
", (rt_tick_get()-tick));
tick = rt_tick_get();
count ++;
if (count >= 8)
{
rt_timer_control(timer1, RT_TIMER_CTRL_SET_ONESHOT, (void *)&timeout);
rt_timer_control(timer1, RT_TIMER_CTRL_SET_TIME, (void *)&timeout);
count = 0;
}
}
int rt_application_init()
{
timer1 = rt_timer_create("timer1",
timeout1,
RT_NULL,
100,
RT_TIMER_FLAG_PERIODIC);
if (timer1 != RT_NULL)
rt_timer_start(timer1);
return 0;
}