欢迎来到亿配芯城! | 免费注册
你的位置:IC芯片代理商-全球电子元器件采购平台 > 芯片资讯 > MCU单片机计数功能的对外部脉冲信号
MCU单片机计数功能的对外部脉冲信号
发布日期:2024-03-09 06:59     点击次数:114

 有些传感器会输出MCU计数功能的脉冲信号,MCU单片机需要统计脉冲输入的数量,通常有以下实现方法:1.GPIO中断的原理非常简单。利用GPIO的上下中断,脉冲的数量是进中断的次数。只需在中断服务函数中进行计数即可。GPIO中断的使用应注意:脉冲信号的频率不应过高,否则MCU单片机可能无法处理GPIO中断处理程序应尽可能短,否则GPIO中断的优先级应较高,否则脉冲信号的处理将延迟

首先,我们使用PWM波产生频率为10Khz的板,持续时间为100ms。 。 

MCU单片机1.png

下降边缘的脉冲数理论为100ms/0.1ms=事实上,由于有一点误差,从上述逻辑分析仪可以看出,实际脉冲数为1.009k,即1009k。然后将PWM连接到另一个板的GPIO引脚上,打开下降边缘的中断。在中断服务函数中计数,实际值为1009。 

MCU单片机2.png

2.定时器输入捕获输入捕获 

它通常用于测量脉冲宽度和频率,也可用于脉冲计数。其原理类似于上述GPIO中断,但使用定时器输入捕获中断。 

MCU单片机3.png

 

3.定时器实际上与计数器非常相似,但定时器计数内部时钟脉冲。当计数到一定值时,IC芯片代理商-全球电子元器件采购平台 时间可以根据频率计算。计数器计数外部脉冲,即每次外引脚发生变化,计数器计数一次。MCU单片机的定时器可用于将外部脉冲信号接入MCU的TIMx_ETR引脚进行计数。 

MCU单片机4.png

MCU单片机6.png

它的使用也很简单,主要配置TIMx_SMCR寄存器(slave mode control register),详情请参考芯片参考手册。

MCU单片机7.png

可见定时器CNT的值是脉冲的数量。 

总结:1)尽量使用TIMER ETR引脚通过计数器实现脉冲计数。如果条件不允许,外部脉冲输入频率不是很高,GPIO中断也可以实现,但仍需考虑高频中断对整个系统的影响。例如,上述MCU的主频为48mhz,将10khz调整为100khz。实测GPIO中断也可以准确计数,但当继续增加到1mhz时,无法处理。实测脉冲约5万个,GPIO中断只测量10206个,使用计数器模式可以准确计数。2)如果使用GPIO中断计数,应特别注意GPIO上无接地电容,否则会改变脉冲波形,导致计数错误。一起学习嵌入式!