基于i.MX6UL实现PWM脉冲计数

  

,,


<李>

<李>


,,由于我。MX6UL的PWM脉冲输出本身不具备计数功能,所以采用了PWM +点蚀电位结合使用的方式。

,,点蚀电位(增强周期中断定时器)为我。MX6UL实现的高精度周期性中断定时器,其和PWM采用的是同一个时钟源。

,,基本思路为:当应用程序设置PWM计数值时启动PWM输出,将PWM计数值换算为点蚀电位的定时周期,并启动点蚀电位开始计时,当定时周期到时产生中断,在点蚀电位中断中禁用PWM输出,此时PWM脉冲输出的个数也应该达到理论输出个数。

,,用户调用流程如图3 - 1所示。

基于我。MX6UL实现PWM脉冲计数

,,按照如下公式,根据用户设置的PWM频率和计数数值,换算为点蚀电位定时的数值。


基于我。MX6UL实现PWM脉冲计数


,,之后设置PWM工作的频率,启动PWM输出,设置点蚀电位定时时长,启动点蚀电位定时。

,,调用点蚀电位设备提供的接口,阻塞等待定时器到期后的中断。

<李>

  李李

<>

,,

基于我。MX6UL实现PWM脉冲计数

,

基于我。MX6UL实现PWM脉冲计数

基于我。MX6UL实现PWM脉冲计数

  ,

基于i.MX6UL实现PWM脉冲计数