测脉冲频率几种方法的比较
用单片机测频率脉冲可以用外中断+定时器、定时器的输入捕获、或编码器模块(例如LPC 的QEI可实现对电机的转速、位置测量和报警)
单片机的外中断对外部脉冲的触发条件有2种:
- 边沿触发:适合脉冲,比较常用
- 电平触发:使用时要:进入时关闭中断,退出时再开中断以防止电平持续时间过长,ISR还未处理完中断又发生中断导致的反复中断触发。
外中断+定时器法:
- 外中断完成对外部脉冲的计数,定时器完成设定测量周期,定时器的中断优先级要比外中断高以实现在测量周期到达后关闭外中断。
- 缺点:利用单片机的内部资源多(外中断、定时器),主要靠软件处理完成,速度慢,CPU利用率低。
- 适合条件:频率不高的场合。
定时器的输入捕获法:
- 输入捕获的概念:通过设定相应PIN脚(定时器的输入捕获通道)的触发条件(边沿触发、电平触发),在触发事件发生时,内部自动将定时器计数器的值送入捕获寄存器,通过计算两次捕获寄存器的差值就得到输入脉冲信号的频率。
- 触发时刻通过查询捕获标志寄存器的状态或可选产生的中断进行操作
- 优点:单片机内部硬件自动完成,效率高、速度快、占用内部外围资源和cpu占用率低。
- 注意:如果外部脉冲频率比较高,最好通过DMA进行缓冲防止数据因来不及处理而被覆盖掉;如果定时器的计数溢出,这时候可以取其补码。
定时器的输出匹配:
- 概念:通过设定匹配值。当定时器的计数值与匹配值相等时触发PIN脚(定时器输出匹配通道)产生:高低电平、或翻转动作。实际上是将具有时间控制要求与IO控制的功能整合。
编码器测脉冲:比如LPC的单片机有此模块可有硬件自动完成对外部脉冲的计数、对电机的速度位置的检测和报警控制。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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 中如何实现缓存的预热?