|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
C语言如何获得精确的程序执行的时间 |
作者:szhaochong 栏目:嵌入式系统 |
给电容充电,充至额定值为止。充电时间是毫秒级,甚至更短。difftime( finish, star)得到的时间是秒级的,不能满足精度。请问有什么解决办法?多谢指教! |
2楼: | >>参与讨论 |
作者: ecurb2006 于 2007/1/6 18:01:00 发布:
gettimeofday() /* 需要的头文件: <sys/time.h> int gettimeofday(struct timeval *tv,struct timezone *tz); strut timeval { LONG tv_sec; /* 秒数 */ LONG tv_usec; /* 微秒数 */ }; timezone 一般我们不关注,将设为 NULL 就可以了。 */ #include <sys/time.h> void function(void); /* your function */ int main(void) { struct timeval fun_start,fun_end; gettimeofday(&fun_start,NULL); function(); gettimeofday(&fun_end,NULL); return 0; } /* 你完成你自己的 function ,然后试试看 */ 微型嵌入式GUI 开发者 blog.csdn.net/ecurb2006 * - 本贴最后修改时间:2007-1-6 18:04:06 修改者:ecurb2006 |
3楼: | >>参与讨论 |
作者: szhaochong 于 2007/1/7 13:20:00 发布:
多谢指教 多谢ecurb2006 |
4楼: | >>参与讨论 |
作者: ecurb2006 于 2007/1/7 13:39:00 发布:
呵呵 多多交流,共同进步! 微型嵌入式GUI 开发者 急需资金,转让个人作品。 欢迎给我投资。 support@ecurb2006.com * - 本贴最后修改时间:2007-1-7 13:41:03 修改者:ecurb2006 |
5楼: | >>参与讨论 |
作者: szhaochong 于 2007/1/9 21:34:00 发布:
再请教ecurb2006 我在 Win tc 1.91 环境下输入程序,可是系统提示“无法打开包含文件‘sys/time.h'”。 请问这个头文件要自己添加还是win tc 没有这个功能? |
6楼: | >>参与讨论 |
作者: ecurb2006 于 2007/1/9 21:46:00 发布:
呵呵 sys/time.h 一般是 Linux/Unix 里的头文件 你的情况应该这样用 struct time tm; gettime(&tm); 相关结构定义如下 ----------------------------------- struct time { unsigned CHAR ti_min; /* Minutes */ unsigned CHAR ti_hour; /* Hours */ unsigned CHAR ti_hund; /* Hundredths of seconds */ unsigned CHAR ti_sec; /* Seconds */ }; --------------------------------------- 如果还提示有误,那么 #include "dos.h" 就应该没问题了. >给电容充电,充至额定值为止。充电时间是毫秒级,甚至更短。 你是在搞 DOS 应用,对吧 ? 微型嵌入式GUI 开发者 blog.csdn.net/ecurb2006 * - 本贴最后修改时间:2007-1-9 21:59:00 修改者:ecurb2006 |
7楼: | >>参与讨论 |
作者: szhaochong 于 2007/1/10 13:24:00 发布:
请允许我叫你一声:大哥! 佩服!我用的是ICOP-6054VE,操作系统确实是DOS。老师不久前刚给的课题,好多地方不懂,还望多多指教!我的QQ:94431038,不介意的话请加我。“struct time tm; gettime(&tm);” 这种用法能精确到毫秒级吗?先前我打算用它,但觉得它精确度可能达不到要求就没用。 |
8楼: | >>参与讨论 |
作者: ecurb2006 于 2007/1/11 16:00:00 发布:
可以 struct time { unsigned CHAR ti_min; /* Minutes */ unsigned CHAR ti_hour; /* Hours */ unsigned CHAR ti_hund; /* Hundredths of seconds */ unsigned CHAR ti_sec; /* Seconds */ }; 里面的 ti_hund 就是你需要的. 如果你需要更高的,可以去改变 DOS 的时钟,呵呵,在 DOS 编写游戏时最常用的.uC/OS-II 在x86的演示包,好像也是修改这个时钟中断的. DOS 下还有一个 eRTOS 的实时操作系统,你自己找找资料吧. 会有帮助的. 微型嵌入式GUI 开发者 blog.csdn.net/ecurb2006 * - 本贴最后修改时间:2007-1-11 16:01:11 修改者:ecurb2006 |
9楼: | >>参与讨论 |
作者: zzty 于 2007/1/12 11:17:00 发布:
又多学了一招~~~ |
10楼: | >>参与讨论 |
作者: jxfeifei 于 2007/1/17 19:56:00 发布:
定时器啊 用定时器编一个不是很精确吗? |
|
|
Copyright © 1998-2006 tgdrjb.cn 浙ICP证030469号 |