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


댓글

이 블로그의 인기 게시물

쉽게 설명한 파티클 필터(particle filter) 동작 원리와 예제

간단한 cfar 알고리즘에 대해

base64 인코딩 디코딩 예제 c 소스

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

바로 프로젝트 적용 가능한 FIR Filter (low/high/band pass filter )를 c나 python으로 만들기