实用 | 获取单片机代码运行时间的方法
内容提要
电阻在模拟电路中起着重要作用,其阻值的选择会影响放大器的性能。电阻阻值越大,热噪声越明显,阻值越小,工作电流越大。延时函数的执行时间可以通过示波器或定时器方法进行检测,推荐使用示波器方法。
延伸解读
模拟电路中电阻选值的权衡
文章指出,电阻阻值的选择在模拟电路中需要权衡热噪声与电流噪声。阻值越大,热噪声越明显,放大器性能下降;阻值越小,工作电流越大,电流噪声增加。因此,许多放大电路选择几十千欧姆的电阻。若需较大阻值,可考虑电压跟随器或T型网络来规避问题。这提醒工程师在精密模拟设计中不能只关注阻值、精度和功率,还需考虑噪声影响。
示波器法测延时:简单但需注意小延时误差
通过GPIO翻转配合示波器,可以直观测量Delay_us的执行时间。实测显示,Delay_us(100)约为102us或101us,而Delay_us(1)约为2.2us,Delay_us(10)约为11.4us。这表明短延时的相对误差较大,但整体函数基本可靠。该方法操作简单,几乎不增加代码,适合实时性要求高的单片机程序,但超过1秒的计时效果不理想。
定时器法测延时:精度高但操作复杂
使用STM32定时器2实现Delay_us,并通过调试界面观察TimeWidthAvrage变量,可计算出Delay_us(1000)的执行时间约为1ms,验证成功。该方法计时最大长度可达约59.65秒,但需要在原代码中增加测试代码,可能影响原代码工作,测试可靠性相对较低。文章建议可将结果转换为us、ms、s并通过串口打印,但对常用调试者而言并非必需。
两种测量方法的选择建议
文章对比了软件测试与示波器方法:软件测试操作复杂,可能干扰原代码,但计时范围大;示波器方法操作简单,几乎不增加代码,可靠性高,但受显示能力限制,超过1秒的计时不理想。考虑到单片机程序通常实时性高,很少出现秒级延时,文章综合推荐使用示波器方法。读者应根据实际测试需求和条件选择合适方法。
Q&A
电阻在模拟电路中有什么重要作用?
电阻在模拟电路中影响放大器性能,阻值选择会影响热噪声和电流噪声。
如何检测Delay_us函数的执行时间?
可以通过示波器或定时器方法检测Delay_us函数的执行时间,推荐使用示波器方法。
示波器方法和定时器方法有什么区别?
示波器方法操作简单、测试可靠性高,而定时器方法操作复杂、可能影响原代码,测试可靠性较低。
选择电阻阻值时需要考虑哪些因素?
需要考虑电阻阻值对热噪声和电流噪声的影响,通常选择几十千欧姆的阻值以避免性能下降。
Delay_us函数的执行时间大约是多少?
Delay_us(100)的执行时间大约为102微秒,Delay_us(1)的执行时间大约为2.2微秒。
在放大电路中,电阻阻值过大有什么后果?
电阻阻值过大会导致热噪声明显,进而降低放大器的性能。