1

在 Curiosity 板上使用 dsPIC33CK256MP508。

尝试在高分辨率模式下运行 4 个 PWM 发生器。

我将以单循环模式运行它们。试图弄清楚如何同时启动所有 4 个信号,或者从同一个事件中触发它们,但我无法理解这个外围设备相当复杂的触发安排。

数据表显示的图表似乎表明它们都从相同的时基运行,或者至少它们似乎都在完全相同的时间开始,但实际上,随着每个 PWM 发生器启用或使用 PGxSTAT 位启动一个周期。 TRSET,每个循环将按顺序启动,因为它们是由顺序命令在不同时间启动的。

是否有捷径可寻?理想情况下,我想写一点,甚至驱动一个引脚或其他东西,以便每个发电机同时启动。只要它们同时开始,触发器和它们实际开始之间可能会有一些延迟。

谢谢你。

4

1 回答 1

1

您可以初始化不同 PWM 定时器/计数器的计数器寄存器的值,以便它们同相启动。实际值取决于为每个定时器设置 TRSET 位之间的指令数,以及您的预分频器选项。

首先,为您的模块/功能生成一个汇编列表,并在手动触发每个 PWM 定时器之间计算时钟周期。这将为您提供 PWM 定时器之间的精确相位差。

一旦您确切知道相位差的周期数,通过在依次触发它们之前设置每个计数器的值来调整 PWM 计数器/定时器的相位。

换句话说,您必须计算时钟周期并设置初始计数器值,以便它们在启动后同时达到零或比较。

于 2020-11-11T07:04:37.720 回答