리눅스에서 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)를 통해 윈도우 화면 미러링 방법

아두이노(arduino) 심박센서 (heart rate sensor) 심박수 측정 example code

Eigen 라이브러리 matrix 사용법

카메라 인터페이스 MIPI CSI에 관하여