리눅스에서 clock_gettime을 사용하여 gettickcount만들기
임베디드 리눅스에서 GetTickCount같은 함수를 만들 때 clock_gettime을 사용하면 쉽게 만들 수 있다.
#include <time.h>
unsigned long GetTickCount()
{
struct timespec tp;
clock_gettime(CLOCK_MONOTONIC,&tp);
return (unsigned long)(tp.tv_sec *1000 +
tp.tv_nsec / 1000000);
}
clock_gettime을 사용하면 좀더 세밀한 시간 해상도를 가진 GetTickCount를 만들 수 있다.
clock id는 CLOCK_REALTIME, CLOCK_MONOTONIC 등이 있다.
시스템 마다 clock id에 차이가 있을 수 있으니 사용전에 테스트해보고 사용하는 것이 좋다.
clock의 해상도는 아래 코드를 사용하여 받아올 수 있다.
struct timespec tp;
clock_getres(CLOCK_MONOTONIC,&tp);
댓글
댓글 쓰기