摘要:采用外部触发法测矩形波频率和占空比,结合线性补偿,各频段矩形波测量误差均在0.01%以下。
关键词:外部时钟输入、外部触发使能、从模式、门控模式
一、 方案总体介绍
本方案未采用外部中断测频和定时器输入捕获测占空比,原因是在测高频时,中断频率过高,CPU频繁响应中断,导致测量精度严重下降。故采用以下方案:
频率测量方案:用定时器TIM3定时1秒,定时器TIM2设置为外部时钟输入(将要测量的矩形波作为时钟输入)。1秒后,取出TIM2计数器的值,即是所要测量的矩形波的频率。由于存在系统误差,进行多次测量,用Matlab拟合曲线,进行线性补偿。
占空比测量方案:为节省外设资源,对定时器TIM2进行分时复用,即在测频完成后,更改定时器设置,再进行测量占空比。用定时器TIM3定时1秒,定时器TIM2设置从模式、门控模式(高电平定时器时钟使能),触发源为外部触发。1秒后,取出TIM2计数器的值,进行时间计算,得出1秒内高电平的时间,进而计算出占空比。之后同样进行线性补偿。
二、 方案具体实施
- 主函数编写。
- 在timer.h进行函数声明。
- TIM3初始化,开启中断。
- TIM3的中断子函数编写。