리눅스에서 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);


댓글

이 블로그의 인기 게시물

간단한 cfar 알고리즘에 대해

windows에서 간단하게 크롬캐스트(Chromecast)를 통해 윈도우 화면 미러링 방법

간단한 칼만 필터(Kalman Filter) 소스 코드와 사용 예제

안드로이드(android) 전체 화면 시계 앱(clock app) 예제 코드

mkfs.fat Device or resource busy 에러 해결법