首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用STM32触发捕捉实现高速高精度测频(2)

用STM32触发捕捉实现高速高精度测频(2)


图6 中断程序流程图
  LED动态扫描通过系统定时器SysTick发生中断时更新,1 ms刷新一次LED显示。
结语
  上述测频采用了定时器对内部时钟CK_INT计数到1 s, 输出溢出触发复位定时器2, 定时器2对外部信号进行计数,此次对外部频率进行了4分频,而内部时钟为72 MHz。根据采样定理,最大频率可以测到72 MHz×4/2=144 MHz,由于实验室条件所限,只有120 MHz的信号发生器,经过测量可准确无误地显示120 MHz,最低可以测到4 Hz。若设置为最大分频数是8,则最大频率可以测到72 MHz×8/2=288 MHz。
  本文的创新点:利用了触发捕捉方法测量输入信号的频率,用同一个脉冲捕捉并初始化计数器,可以提高采样速率,减少中断服务函数的执行时间,实现了高速测频。将16位的定时计数器扩展成了32位的定时计数器,这样最大的测频范围可以达到288 MHz。通过对晶振的双精度补偿,能实现测量基本无误差,实现了高精度。用消息驱动的方式,中断服务函数不再去执行消耗大量时间的中断处理函数,而是将中断处理函数地址和参数投递到消息队列,等待用户级函数去获取消息,分拣处理消息,这样做每个中断处理时间缩短了,处理器可以及时地响应多个中断。
继承事业,薪火相传
返回列表