智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5460|回复: 21
打印 上一主题 下一主题

高手进,程序运行时间的计算!一个程序员的必须素质...

  [复制链接]

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
跳转到指定楼层
1#
发表于 2013-12-17 10:29:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
出来实习了,老程序员说:“做嵌入式开发,对时间的掌控十分重要,必须清楚段程序所耗费的时间”。
所以,就来这开个讨论区,大家来讨论讨论,怎么计算一段程序所耗费的时间?
我的思路:
1.程序开头加启动计时,程序结束加停止计时,查看计数寄存器,再换算出时间。
  (优点准确。缺点:麻烦,要配置定时器,又要计算,一大堆琐碎事,一漏点什么就出错了,且相对较长时间的计时就更烦了。)
2.程序开头、结尾对一个引脚取反,测该脚频率,从而算出时间
  (优点:简单、快捷。 缺点:要示波器,我没这器材!找了个基于声卡的虚拟示波器,结果限制太大,不能测高频率的)
3.用机器周期计算,找出程序汇编语言对应的代码量,然后乘以一条语句所需时间即可。
  (这点我不太会,对汇编不太熟悉,所以程序所对应的汇编代码段也不大清楚,所以这个代码量不会算。另外一条语句所需时间也不大确定:懂的帮我看下这样对不对:(我的系统频率是超频到211MHz)所以一条汇编所需时间是:((1/211)*12)us(一个机器周期等于12个PLL脉冲)

14

主题

369

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2881

优秀会员奖章活跃会员奖章

威望
1348
贡献
823
兑换币
493
注册时间
2012-11-13
在线时间
355 小时
22#
发表于 2013-12-23 21:38:02 | 只看该作者
尕玍紿 发表于 2013-12-23 15:36
上限可能会有所不同吧...
由自己电脑声卡的采集频率决定的。

貌似现在电脑标配频率是44.1KHZ,和2兆差几十倍呢,你的两兆赫兹是你用的吗?输入还是输出?我感觉我也只要输入能达到兆级别就够用了。
回复 支持 反对

使用道具 举报

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
21#
 楼主| 发表于 2013-12-23 15:36:58 | 只看该作者
我爱小kb 发表于 2013-12-23 10:51
嗯嗯太谢谢你啦,我也查了,可还是不明白那个44100Hz和你说的最高2MHz是什么关系?

上限可能会有所不同吧...
由自己电脑声卡的采集频率决定的。
回复 支持 反对

使用道具 举报

14

主题

369

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2881

优秀会员奖章活跃会员奖章

威望
1348
贡献
823
兑换币
493
注册时间
2012-11-13
在线时间
355 小时
20#
发表于 2013-12-23 10:51:48 | 只看该作者
尕玍紿 发表于 2013-12-22 15:07
我百度下的,你看看适不适合吧。解压就能用了!
耳机线直接插到电脑“麦克风/话筒”输入口(粉红色的) ...

嗯嗯太谢谢你啦,我也查了,可还是不明白那个44100Hz和你说的最高2MHz是什么关系?
回复 支持 反对

使用道具 举报

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
19#
 楼主| 发表于 2013-12-22 15:07:50 | 只看该作者
我爱小kb 发表于 2013-12-19 22:39
求个详细点的,没接触过这个,2Mhz够我用了。耳机线是插到电脑的麦克风输入口吗?会不会万一电压电流过大 ...


我百度下的,你看看适不适合吧。解压就能用了!
耳机线直接插到电脑“麦克风/话筒”输入口(粉红色的)就行了
至于对电脑伤害方面,只要你输入的东西有保证,那就没问题了,当然你一不小心给它输入个大电流的信号那肯定是不行 的!用来测MCU输出的PWM的信号那是没问题的...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

14

主题

369

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2881

优秀会员奖章活跃会员奖章

威望
1348
贡献
823
兑换币
493
注册时间
2012-11-13
在线时间
355 小时
18#
发表于 2013-12-19 22:39:18 | 只看该作者
尕玍紿 发表于 2013-12-18 15:40
示波器的话,下个虚拟示波器咯,不过只能测2MHz以内的信号。
直接百度:声卡虚拟示波器就好了。然后自己 ...

求个详细点的,没接触过这个,2Mhz够我用了。耳机线是插到电脑的麦克风输入口吗?会不会万一电压电流过大把电脑烧了??或者该怎么弄?其他的我先百度看看
回复 支持 反对

使用道具 举报

50

主题

198

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1393
威望
690
贡献
439
兑换币
386
注册时间
2013-3-6
在线时间
132 小时
毕业学校
北京师范大学珠海分校
17#
 楼主| 发表于 2013-12-18 15:40:07 | 只看该作者
我爱小kb 发表于 2013-12-17 18:33
一个机器周期=12个震荡周期是经典51的东西。51好像是cisc结构(复杂指令集)的单片机。我前几天看的avr单片 ...

示波器的话,下个虚拟示波器咯,不过只能测2MHz以内的信号。
直接百度:声卡虚拟示波器就好了。然后自己用耳机线做条信号线就好了,我就是这样的...
回复 支持 反对

使用道具 举报

6

主题

1251

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
14709

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章

QQ
威望
6641
贡献
5456
兑换币
1645
注册时间
2011-2-22
在线时间
1306 小时
16#
发表于 2013-12-18 09:20:20 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
674
QQ
威望
361
贡献
183
兑换币
251
注册时间
2013-11-10
在线时间
65 小时
15#
发表于 2013-12-17 20:15:10 | 只看该作者
回复 支持 反对

使用道具 举报

52

主题

725

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5889
威望
2514
贡献
1289
兑换币
1650
注册时间
2013-2-20
在线时间
1043 小时
毕业学校
韶关学院
14#
发表于 2013-12-17 18:54:19 | 只看该作者
请看《数据结构与算法分析——C语言描述》的第二章,中间有一节就是讲述程序计算时间的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-4 08:43 , Processed in 0.155973 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表