采用哪些方法可以输出固定个数的 PWM 波形?
目前有两种方法:
1.通过 TIM0 发送 PWM 波,然后通过 TIM1 定时,到达一定时间后(一般PWM周期是固定的),通过TIM1的定时器中断来关闭 PWM 输出。
2.讲 TIM0 输出 PWM 波的引脚链接到其他 GPIO 口上,通过外部中断每次捕捉出下降沿来实现软件计数,或者 TIM1 的计数模式捕捉计数。
以上两种设想应该可以实现,但都会占用额外的资源或者需要更改硬件,有没有办法,可以不需要占用其他外设且可以输出固定个数的 PWM 波?
这边我设想:TIM0 产生 PWM 时,定时器应该每次也会溢出,开启定时器中断,然后每产生一个 周期的PWM 波时,进入一次中断函数,软件计数加1,达到个数时关闭中断。
实验结果:多次实验,发现开启中断后 PWM 就会输出异常,多次尝试未果。
问题:是否可以通过我上述说的 PWM 加自身定时器中断来实现计数?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
用的并不是 st 的芯片,但也是一款 m3 内核的芯片,做过多个实验,从 PWM 开启后,开始计数,然后第一个周期似乎被特意跳过去了,只能从第二个周期开始输出。实在不行的话,也只能怀疑,这个芯片就是如此设计的了。
使用定时器级联,可以一轮同步输出4路PWM脉冲计数 . 我就用在了控制伺服上,没问题。跑一天都不错一个.CH1:输出10个
CH2:输出2222个
CH3:输出3333个
CH4:输出8888个.
算作一轮. 用来控制跑坐标很爽.
你自己先试试吧。我试过 1M频率的PWM 4路都可以精确输出.更高应该也可以.没试过
一周热门 更多>