This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我想使用 PWM0和 PWM1模块配置4个独立的 PWM。
哪个控制寄存器定义了 TM4C123gh下午6中独立/互补 PWM 模式的功能。
一个示例将很有帮助。
注意:我已经在 Workshop 和 CCS controlSUITE 中检查了 PWM 示例。 然而、没有特别提到该控制寄存器将控制独立/兼容的 PWM 模式功能
你好 Sachin、
您能否提供有关"四个独立的 PWM"的确切内容的更多详细信息?
是否要加载四种不同的 PWM 时钟设置?
每个 PWM 模块由一个 PWM 时钟输入运行、因此您只能有两个唯一的 PWM 时钟源。 一个用于 PWM0模块、一个用于 PWM1模块。
但是、每个发生器可配置为特定周期/脉宽(即占空比)。
您是否发现不足或问题是否属于其他问题?
您好、Ralph、
感谢您的回答。
系统使用四个独立的电源转换 器运行、因此需要独立的 PWM、尽管 PWM 模块时钟源可以相同、但控制是独立的、即占空比是不同的。
我想特别使用模块0中的 PWM0和 PWM1 (4个 PWM)、因为其他 PWM 用于其他控制用途。
此致、
Sachin
你好 Sachin、
好的、如果我的理解是正确的、您希望使用:
PWM0模块和 PWM 发生器0和 PWM 发生器1、在输出通道 PWM 0 / PWM 1 / PWM 2 / PWM 3上建立4个独立的 PWM。
您还提到您想要更改占空比。 如果 周期相同、但 这些通道的占空比不同、则可以这样做。
这是因为每个 PWM 发生器都设置了周期、但可以使用比较器 A 和 B 来控制占空比、比较器 A 和 B 对应一个 PWM 通道。 因此 、只要发生器中的周期可以相同、就可以了。 如果您需要不同的周期、则无法实现、因为 PWM 0和 PWM 1将共享相同的周期、PWM 2和 PWM 3也是如此。
为了改变 PWM 0与 PWM 1的占空比、您应该使用 PWMPulseWidthSet 来针对所需占空比对一对输出通道进行编程。
虽然我们没有多通道示例、但每个通道的逻辑是相同的、因此请查看 TivaWare 2.2.0.295的 EK-TM4C123GXL 示例工程中的 PWM_INTERRUPT 和/或 PWM_INvert (这些工程仅针对最新版本移动到那里、2.1.4该文件夹中确实有工程!)。 该文件夹位于: [INSTALL Path]\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl
您好、Ralph、
感谢 PWM 模块简介、但仍然无法找到哪个控制寄存器/配置将 PWM 定义为独立 PWM。
如何在 TM4C123中配置独立 PWM? 当 PWM 发生器中的两个 PWM 配置为独立 PWM 时、任何 PWM 模块的示例都很有用。
此致、
Sachin
你好 Sachin、
您能否以 TivaWare 示例作为起点来提供您到目前为止所做的工作? 它们能让您达到您想要的目标的95%。
正如我提到 过的、PWMPulseWidthSet API 可让您为运行在同一周期的 PWM 对配置具有独立占空比的 PWM。
我可以把一些东西放在一起、但需要几天时间。 如果您已经举了一个示例并遇到了挑战、我可以快速查看您的代码并向您提供反馈、这样您就可以更快地获得答案。
您好、Ralph、
Sachin 可能正在寻找基地址、Tivaware 为每个 PWM 模块定义了基地址。
以下是 TM4C1294的设置、123g 的设置可能不同、PWM0/1的 ADC 触发定义适用于分配给任何序列发生器的每个特定模块、默认值为 PWM0。
#define PWM0_BASE 0x40028000 //脉宽调制器(PWM) #define PWM1_base 0x40029000 //脉宽调制器(PWM)
#define ADC_TRIGGER_PWM_MOD0 0x00000000 //从 PWM0触发 PWM #define ADC_TRIGGER_PWM_MOD1 0x00000010 //从 PWM1触发 PWM