随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

测脉冲频率几种方法的比较

用单片机测频率脉冲可以用外中断+定时器、定时器的输入捕获、或编码器模块(例如LPC 的QEI可实现对电机的转速、位置测量和报警)

单片机的外中断对外部脉冲的触发条件有2种:

  • 边沿触发:适合脉冲,比较常用
  • 电平触发:使用时要:进入时关闭中断,退出时再开中断以防止电平持续时间过长,ISR还未处理完中断又发生中断导致的反复中断触发。

外中断+定时器法:

  • 外中断完成对外部脉冲的计数,定时器完成设定测量周期,定时器的中断优先级要比外中断高以实现在测量周期到达后关闭外中断。
  • 缺点:利用单片机的内部资源多(外中断、定时器),主要靠软件处理完成,速度慢,CPU利用率低。
  • 适合条件:频率不高的场合。

定时器的输入捕获法:

  • 输入捕获的概念:通过设定相应PIN脚(定时器的输入捕获通道)的触发条件(边沿触发、电平触发),在触发事件发生时,内部自动将定时器计数器的值送入捕获寄存器,通过计算两次捕获寄存器的差值就得到输入脉冲信号的频率。
  • 触发时刻通过查询捕获标志寄存器的状态或可选产生的中断进行操作
  • 优点:单片机内部硬件自动完成,效率高、速度快、占用内部外围资源和cpu占用率低。
  • 注意:如果外部脉冲频率比较高,最好通过DMA进行缓冲防止数据因来不及处理而被覆盖掉;如果定时器的计数溢出,这时候可以取其补码。

定时器的输出匹配:

  • 概念:通过设定匹配值。当定时器的计数值与匹配值相等时触发PIN脚(定时器输出匹配通道)产生:高低电平、或翻转动作。实际上是将具有时间控制要求与IO控制的功能整合。

编码器测脉冲:比如LPC的单片机有此模块可有硬件自动完成对外部脉冲的计数、对电机的速度位置的检测和报警控制。

posted on   杰瑞鼠  阅读(5981)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示