PIC上有多个PWM通道

时间:2016-04-13 09:20:12

标签: pic pwm

我使用PIC16F88作为我的项目,使用XC8编译器。

我想要实现的是用4个按钮控制4个LED,按下按钮可以将相应LED的占空比增加10%。 当您按下RB0上的按钮时,它会增加RB4上LED的占空比,依此类推。 每个LED都是独立的,因此它可以有不同的占空比。

问题是PIC i使用RB0或RB3上只有一个PWM模块(使用CCPMX位)。

经过一番研究后,我决定实现软件PWM有四个不同的通道,每个通道将控制一个占空比,但我发现的大多数来源都没有提供任何解释如何做到这一点。 或者有没有办法将PWM镜像到多个引脚?

感谢提前帮助我。

1 个答案:

答案 0 :(得分:1)

镜像不是一种选择。

PWM相对简单。您必须设置PWM频率(您不会更改)和PWM占空比(您需要更改以获得0-100%的电压范围)。您必须决定所需的PWM分辨率,电压阶跃(内置PWM,例如8位,步长为0-255)。

最后,您必须根据PWM频率* PWM分辨率将定时器设置为中断。在Timer ISR例程中,您需要检查所有通道的分辨率计数和PWM值。达到分辨率值时,必须重置分辨率计数(并再次从0开始计数,此处所有输出也变为高电平)。当达到输出的PWM值时,您必须切换(拉低)相应的引脚(并在每次分辨率计数复位时将其重置为高电平)。

这只是一种方法,只涉及一个计时器,应该是最简单的,因为你的PIC资源很少。

希望它有所帮助...