测脉冲频率几种方法的比较
用单片机测频率脉冲可以用外中断+定时器、定时器的输入捕获、或编码器模块(例如LPC 的QEI可实现对电机的转速、位置测量和报警)
单片机的外中断对外部脉冲的触发条件有2种:
- 边沿触发:适合脉冲,比较常用
- 电平触发:使用时要:进入时关闭中断,退出时再开中断以防止电平持续时间过长,ISR还未处理完中断又发生中断导致的反复中断触发。
外中断+定时器法:
- 外中断完成对外部脉冲的计数,定时器完成设定测量周期,定时器的中断优先级要比外中断高以实现在测量周期到达后关闭外中断。
- 缺点:利用单片机的内部资源多(外中断、定时器),主要靠软件处理完成,速度慢,CPU利用率低。
- 适合条件:频率不高的场合。
定时器的输入捕获法:
- 输入捕获的概念:通过设定相应PIN脚(定时器的输入捕获通道)的触发条件(边沿触发、电平触发),在触发事件发生时,内部自动将定时器计数器的值送入捕获寄存器,通过计算两次捕获寄存器的差值就得到输入脉冲信号的频率。
- 触发时刻通过查询捕获标志寄存器的状态或可选产生的中断进行操作
- 优点:单片机内部硬件自动完成,效率高、速度快、占用内部外围资源和cpu占用率低。
- 注意:如果外部脉冲频率比较高,最好通过DMA进行缓冲防止数据因来不及处理而被覆盖掉;如果定时器的计数溢出,这时候可以取其补码。
定时器的输出匹配:
- 概念:通过设定匹配值。当定时器的计数值与匹配值相等时触发PIN脚(定时器输出匹配通道)产生:高低电平、或翻转动作。实际上是将具有时间控制要求与IO控制的功能整合。
编码器测脉冲:比如LPC的单片机有此模块可有硬件自动完成对外部脉冲的计数、对电机的速度位置的检测和报警控制。