历史上的今天
今天是:2025年08月16日(星期六)
2021年08月16日 | 51单片机-软件调试查看运行时间
2021-08-16 来源:eefocus
上一讲我们知道“for(i=0;i<30000;i++);”只是延时了大概的一段时间而已,虽然我们可以把30000改变为其他的数(不能超过65535)来取决他的延时持续时间,但我们想要延时1秒似乎有点难测出来。那么这一节我们来教大家如何查看程序代码的执行时间。
步骤1
首先我们需要修改软件中的晶振值为11.0592M,创建工程时默认是24M,我们修改为开发板上所用的晶振值来达到软件仿真接近实际硬件的实验想象。

步骤2
在上一讲的代码中我们先 编译通过 之后点击“Start/Stop Debug Session”

步骤3
接着光标移到21,22行的阴影处点击出来两个红色断点,在之后点击Reset

步骤4
回到main.c文件,按下Run键,此时看到前面运行的一些程序已经用去了0.00042752秒

步骤5
现在两个叠加在一起的横三角指着21行,意思是准备执行这条语句,我们再按一下Run,看到时间变为0.00042860s,所以得出运行21行处的“LED2=0;”这条语句用了0.00042860-0.00042752=0.00000108s,也就是1.08微秒。

步骤6
此时的双横三角指示箭头来到22行处,同理此时如果按Run,程序就会开始执行“for(i=0;i<30000;i++);”语句。不过我们还需再次在23行处点击出红色断点,这个断点是为了在运行完“for(i=0;i<30000;i++);”语句时统计所有之前程序花费的时间,不加这个断点程序就会一直执行下去,也就捕捉不到 “for(i=0;i<30000;i++);”语句所花费多长的时间。
现在我们按下Run。
可以看到“for(i=0;i<30000;i++);”这条语句用了 0.16342556-0.00042860=0.16299696s,也就是接近163毫秒。

提醒
此时在调试模式里修改代码是没有作用的,需要我们先按“Start/Stop Debug Session”回到代码编写模式,这时修改完代码再编译无误后按照步骤2~步骤6继续观察。
记住!修改代码要编译!
记住!修改代码要编译!
记住!修改代码要编译!
上一篇:51单片机-闪烁的LED
下一篇:51单片机-延时1秒
史海拾趣
|
从0开始教你学单片机-反对用标准实验板的学习方法? geyin 闲来无事,准备学学单片机.... 寻找试验板和书籍 发现这本书有个这种观点,吃惊不小啊:) =============================== 定价:25元 作者:赵星寒 刘小波 王庚兰 ...… 查看全部问答> |
|
Skinput能够解决MP3等小玩意儿触摸屏越来越小的问题 Skinput能够识别在手上敲打出来的电话号码 研究人员表示,我们的皮肤是一个完美的显示面,能够永远伴随着我们 与MP3播放器结合在一起的Skinput原型,可用于改换歌曲和调整音量 Ski ...… 查看全部问答> |
|
hFile = CreateFileForMapping(); hMap = CreateFileMapping(hFile,); pHead = MapViewOfFile(hMap); BYTE * pData = new BYTE[nSiz ...… 查看全部问答> |
|
在WINCE5.0 系统中,控制面板--电源--电源属性--方案, 当我在电源使用方案中选电池电源时,将状态切换为挂起的时间不准(即是系统定时睡眠的时间不准), 请高手指点应该怎么样修改,谢谢!… 查看全部问答> |
|
我有一个内部测试机器的系统,有两只表:一只电能表,一只热能表.热能表有RS232接口,已经有软件支持了,接入电脑后运行软件就可以读取数据了,而电能表 只有RS485接口.现欲将两个表的软体整合成一个软件,并要求达到如下功能: 将测试的负 ...… 查看全部问答> |




