当需要知道程序的运行时间时,你们怎么做呢?
可以仿真,用示波器,或者不嫌麻烦的话可以去数指令,今天给大家介绍一种简单可行的方法。仿真我总是觉得不太准(可能只是个人感觉问题);示波器的话,好多人手头又没有,或者是自己在家时,个人有示波器的就更少了。如今的好多单片机都自带捕获功能,那么,我们不就可以用单片机来测时间的长度了吗。
好,说干就干。我现在需要测试的是板子(姑且称主板吧)程序计算一串东西的运行时间,从而确定合适的采样周期。我把主板程序中加了两句话,一句是计算开始时,引脚输出高电平,另一句是计算结束时,引脚输出低电平。这样只需测出这个引脚的高电平脉宽就可以了。
测试时间的板子,我找了找,有一块闲置的STM32的最小系统板。好,就用它了。使用STM32定时器的输入捕获功能,可以精确的测出高电平脉宽,然后通过串口发送给电脑显示。 这是最小系统板,本来有一个自己焊的,但真心难看,还是用这块吧!
好!测脉宽程序写完,先让它自己测量自己的一个PWM波试试,如下图:
上面的测试说明这个方法是可行的,而且精度也足够了。那接下来就进行我的主板程序的时间测量吧!
硬件连接好:
测试结果,稍大于1ms,
好,再选个采样周期,就OK了!