LINUX C 中如何产生一个时钟,比如27M的用于计时
发布网友
发布时间:2022-05-22 06:18
我来回答
共3个回答
热心网友
时间:2024-03-07 00:22
使用cpu的rdtsc汇编指令:
#include <stdio.h>
int get_rdtsc() ...{
return asm("rdtsc");
}
这个函数可以获得cpu的时间戳,分辨率当然是cpu的主频, 如果cpu频率高的话, 27MHz的定时误差应该不是很大。但是, 你要输出和处理这个时钟信号产生的延迟也不太好控制,毕竟不是实时系统。。。。
热心网友
时间:2024-03-07 00:23
#include<sys/time.h>
#include<unistd.h>
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf(“tv_sec; %d\n”, tv,.tv_sec) ;
printf(“tv_usec; %d\n”,tv.tv_usec);
printf(“tz_minuteswest; %d\n”, tz.tz_minuteswest);
printf(“tz_dsttime, %d\n”,tz.tz_dsttime);
}
linux的时间函数可以精确到微秒tv.tv_usec,即产生一个1MHz的时钟。
再快就不好做了
热心网友
时间:2024-03-07 00:23
linux又不是个实时系统,这样的精度可做不到