上一讲我们知道“for(i=0;i<30000;i++);”只是延时了大概的一段时间而已,虽然我们可以把30000改变为其他的数(不能超过65535)来取决他的延时持续时间,但我们想要延时1秒似乎有点难测出来。那么这一节我们来教大家如何查看程序代码的执行时间。
1.步骤1
首先我们需要修改软件中的晶振值为11.0592M,创建工程时默认是24M,我们修改为开发板上所用的晶振值来达到软件仿真接近实际硬件的实验想象。
2.步骤2
在上一讲的代码中我们先 编译通过 之后点击“Start/Stop Debug Session”
3.步骤3
接着光标移到21,22行的阴影处点击出来两个红色断点,在之后点击Reset
4.步骤4
回到main.c文件,按下Run键,此时看到前面运行的一些程序已经用去了0.00042752秒
5.步骤5
现在两个叠加在一起的横三角指着21行,意思是准备执行这条语句,我们再按一下Run,看到时间变为0.00042860s,所以得出运行21行处的“LED2=0;”这条语句用了0.00042860-0.00042752=0.00000108s,也就是1.08微秒。
6.步骤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继续观察。
记住!修改代码要编译!
记住!修改代码要编译!
记住!修改代码要编译!
|