【问题标题】:Multiple PWM Channels on PICPIC 上的多个 PWM 通道
【发布时间】:2016-04-13 18:00:55
【问题描述】:

我的项目使用 PIC16F88,带有 XC8 编译器。

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

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

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

提前感谢您帮助我。

【问题讨论】:

    标签: pic pwm


    【解决方案1】:

    镜像不是一个选项。

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

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

    这只是一种方法,只涉及一个计时器,并且应该是最简单的,因为您的 PIC 资源不足。

    希望对你有帮助...

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-28
      • 1970-01-01
      相关资源
      最近更新 更多