51 双定时器输出PWM相互干扰,怎么解决
时间:10-02
整理:3721RD
点击:
51单片机用T0,T1两个定时器输出PWM。
计数值都是1000时,PWM周期都是5.6ms
计数值都是2000时,PWM周期也都是5.6ms
计数值都是3000时,T0的PWM周期输出2.2ms,T1的PWM输出周期为4.2ms
以上结果用示波器测得。
是不是因为优先级造成的干扰呢?
计数值都是1000时,PWM周期都是5.6ms
计数值都是2000时,PWM周期也都是5.6ms
计数值都是3000时,T0的PWM周期输出2.2ms,T1的PWM输出周期为4.2ms
以上结果用示波器测得。
是不是因为优先级造成的干扰呢?
不大可能吧!你用的是软件PWM啊,那就有可能是程序错误
嗯。我改进了一下,用一个定时器控制两路PWM,这就不会互相干扰了。
也遇到过类似问题 当时分析是中断优先级的问题 可以把两个定时器的中断周期设的不一样,可以解决
对,你说的我考虑到了,然后我改进了一下,用一个定时器控制两路PWM,这就不会互相干扰了。也节省了一个定时器。
两个定时器配合的话可以实现多路PWM波,程序设计合理的话可以达到很高的精度,我写这个写了四个晚上,终于很好的解决了51多路精确PWM输出了,而且是定时器,所以不会受main函数的影响哦,加油吧,
一路定时器不久能输出多路PWM了吗,精度可能稍微差一点,不过能节省一个定时器