由于手机电视项目接收数据出现问题(每帧数据后半部分有丢失,并且每隔一帧就会有几帧丢失),无法在手机上正常播放,原因很可能与SPI接口的速率(与接口驱动相关)与硬件速率不匹配造成的。为此,需要测量接收每个复用子帧所需要的时间。我在www.cplusplus.com网站上找到了一个可用的例子,例子在附录部分附上。另外,在网上搜到了如下的代码,可以实现毫秒级的定时,用于测试程序执行所需要的时间。

#include #include #include

int main( void )

{

long i = 10000000L;

clock_t start, finish;

double duration;

/* 测量一个事件持续的时间*/

printf( "Time to do %ld empty loops is ", i );

start = clock();

while( i-- )

finish = clock();

duration = (double)(finish - start) / CLOCKS_PER_SEC;

printf( "%f seconds/n", duration );

system("pause");

}

程序执行结果:

Time to do 10000000 empty loops is 0.421000 seconds

请按任意键继续...

基于上面的例子,我把附录中的程序进行了简单的修改,可以实现毫秒级的延时。

程序代码如下:

#include #include #include

//实现毫秒级的延时函数

void wait(float seconds)

{

clock_t endwait;

endwait = clock() + seconds * CLOCKS_PER_SEC;

while (clock() < endwait)

{

}

}

int main()

{

int n;

long i = 5000000L;

double time_elapsed;

clock_t begin_time;

clock_t end_time;

begin_time = clock();

printf("Starting countdown.../n");

for (n = 10; n > 0; n--)

{

printf("%d/n", n);

wait(0.5);

}

printf("FIRE!!!/n");

while( i-- )

{

if (i % 1000000 == 0)

{

printf("fire.../n");

wait(0.3);

}

}

end_time = clock();

time_elapsed = (double)(end_time - begin_time) / CLOCKS_PER_SEC;

printf(" Time elapsed: %f./n Clock ticks: %d/n", time_elapsed, end_time - begin_time);

//system("notepad note.txt");    //execute notepad program.

system("pause");

return 0;

}

程序执行结果:

Starting countdown...

10

9

8

7

6

5

4

3

2

1

FIRE!!!

fire...

fire...

fire...

fire...

fire...

Time elapsed: 11.562000.

Clock ticks: 11562

请按任意键继续. . .

======================附录====================

以下来自:http://www.cplusplus.com/reference/clibrary/ctime/clock.html

clock

function

clock_t clock ( void );

Clock program

Returns the number of clock ticks elapsed since the program was launched.

The macro constant expression CLOCKS_PER_SEC specifies the relation between a clock tick and a second (clock ticks per second).

The initial moment of reference used by clock as the beginning of the program execution may vary between platforms. To calculate the actual processing times of a program, the value returned by clock should be compared to a value returned by an initial call to clock.

Parameters

(none)

Return Value

The number of clock ticks elapsed since the program start.

On failure, the function returns a value of -1.

clock_tis a type defined in to some type capable of representing clock tick counts and support arithmetical operations (generally a long integer).

Example

Output:

See also

time

Get current time (function)

difftime

Return difference between two times (function)

C语言写一个10毫秒的延迟,C语言实现毫秒级定时相关推荐

  1. 怎么用c语言写一个贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

  2. ChatGPT实现用C语言写一个扫雷小游戏

    前几天我们利用 ChatGPT实现用C语言写一个学生成绩管理系统 其过程用时不到30秒,速度惊人 今天又让ChatGPT用C语言写了一个扫雷小游戏,它的回答是:抱歉,我是AI语言模型,无法编写程序. ...

  3. C语言写一个很好玩的皇帝的后宫小游戏

    C语言写一个很好玩的皇帝的后宫小游戏 前言 先演示一下 上源码 总结 前言 只是单纯喜欢C语言,闲着无事把以前学习的时候的案例编了一下,都是很基础的代码,for,swich,if这些,基础好的看完后完 ...

  4. 用C语言写一个可以选择关卡添加关卡的小游戏,推箱子

    目录 关于用C语言写一个可以选择关卡的小游戏 代码部分 所有代码 Tui_Xiang_Zi.h Tui_Xiang_Zi.cpp 关卡数据 关卡数据规则 思路和建议 建议 警告 关于用C语言写一个可以 ...

  5. c语言的十进制转十六进制字符串,用c语言写一个函数把十进制转换成十六进制,该如何处理...

    用c语言写一个函数把十进制转换成十六进制 用c语言写一个函数把十进制转换成十六进制 网上找到一些,感觉有占乱 分享到: ------解决方案-------------------- #include ...

  6. python restful api_用Python语言写一个restful API

    本文主要向大家介绍了用Python语言写一个restful API,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. """ package.modul ...

  7. 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)

    作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...

  8. c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  9. 用C语言写一个计算器

    用C语言写一个计算器,除了四则混合运算之外,还支持三角函数和绝对值等函数. PS E:\Code\PL\calc> .\a.exe abs(3*5-4^2) abs(3*5-4^2)=1.000 ...

最新文章

  1. 浏览器登录java_java – 如何停止已登录的用户从其他浏览器登录
  2. JQuery 实现遮罩层
  3. python pycurl
  4. [业余项目]黄金点游戏
  5. 内网渗透之隐藏通信隧道技术
  6. jaspersoft studio6.x 设计医院检查报告单样式
  7. 一键关闭Windows所有帐号UAC用户帐号控制
  8. 人工智能的语义学基础
  9. Linux文件颜色与文件类型对应(白色、蓝色、红色、黄色、绿色 代表的意义。。。)
  10. 儿童学写字.exe.CR.rar.eml
  11. 关于物联网卡,您想了解的都在这里
  12. UUID简介以及java代码获取UUID示例
  13. canvas与CreateJS实现图片动画
  14. 前端工程师说明(仅以自勉)
  15. 冒泡排序-过程详细版
  16. 转战物联网·基础篇13-了解物联网之物连接相关通信技术(2)
  17. 涂鸦智能设备接入homeassistant
  18. 链接chinanet无法出现登陆界面(电脑),360开wifi说缺少一个网卡
  19. Python 翻译 Post请求
  20. DeFi 借贷 VS 传统借贷

热门文章

  1. 5G是什么?一则视频听听专家怎么通俗讲解
  2. yzh第十四课 调试技巧选讲
  3. linux下修复windows7启动项,Ubuntu 14.04.02 LTS 启动项误写入 /dev/sda1 (win 7 loader) 修复...
  4. 海康、大华rtsp流地址格式
  5. Vscode连接环境时始终在connecting to kernel:
  6. 安装 | 企业版CDH服务器集群配置(详细)
  7. JAVA计算机毕业设计诗词文化网站源码+系统+mysql数据库+lw文档
  8. 立体匹配经典算法:PatchMatchStereo
  9. app保活面试题,Android动态换肤实现原理解析,再不刷题就晚了!
  10. 我是如何利用业余时间写书的?---时间管理