cc 2530-Contiki 시스템 에 대한 시계
1559 단어 contiki
그 속
굵 은 입도 시간 은 128 HZ 의 주파 수 를 사용 합 니 다.예 를 들 어 CLOCKSECOND。
입자 도 시간 은 32768 HZ 의 주파 수 를 사용한다.예 를 들 어 RTIMERSECOND。
Contiki 시스템 은 네 가지 유형의 타이머 가 있 는데 그것 이 바로 timer,etimer,ctimer 와 rtimer 이다.
앞의 세 개 는 모두 굵 은 입자 의 시 계 를 사용 하여 시간 을 재 었 습 니 다.rtimer 는 입자 의 시 계 를 사용 하여 시간 을 재 었 습 니 다.그들의 의 미 는 다음 과 같 습 니 다.
timer:수 동적 타이머,지난 시간 만 추적 할 수 있 습 니 다.
etimer:주동 타이머,시간 이 되면 이 벤트 를 보 냅 니 다.
ctimer:주동 타이머,시간 이 되면 함 수 를 호출 합 니 다.
rtimer:실시 간 타이머,시간 이 되면 함 수 를 호출 합 니 다.
etimer 사용 루틴:
static struct etimer etim;
PROCESS_THREAD(my_process,ev,data)
{
PROCESS_BEGIN();
while(1)
{
printf("Uptime (seconds): %lu
",clock_seconds());
etimer_set(&etim,CLOCK_SECOND);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&etim));
}
PROCESS_END();
}
ctimer 사용 루틴:
static struct ctimer callback_timer;
static void callback(void *data)
{
printf("%s
",(char *)data);
}
void application(void)
{
ctimer_set(%callback_timer,CLOCK_SECOND,callback,
"Hello, callback!");
}
rtimer 사용 루틴:
1.시간 설정 시 하드웨어 인 터 럽 트 설정
2.반전 생 성
// rtimer
static struct rtimer rt;
rtimer_set(&rt, // rtimer
RTIMER_NOW() + RTIMER_SECOND,//1s
1, //
rt_callback, //
NULL); //
//
statci void
rt_callbcak(struct rtimer *rt, void *data)
{
printf("callback!
");
}