工具与软件:
嗨、
我需要找到一种方法来确定为 PWM 设置的 GPIO 引脚的状态。
我想我可以读取 GPIOx->DOUT31_0寄存器、但在针对 PWM 进行设置时、这似乎并不反映引脚状态。
此致
安德斯
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.
工具与软件:
嗨、
我需要找到一种方法来确定为 PWM 设置的 GPIO 引脚的状态。
我想我可以读取 GPIOx->DOUT31_0寄存器、但在针对 PWM 进行设置时、这似乎并不反映引脚状态。
此致
安德斯
据我所知、你不能这样做。 GPIO 是它自己的引脚功能(PF = 1)、因此当 PF 连接到计时器时、它的状态是断开的。 我在 MSP430计时器中找不到与 SCCI 位等效的 TIMA/TIMG。
我怀疑您可以使用 ADC 或比较器来感测引脚的状态、因为"到模拟外设"路径独立于 PF [参考 TRM (SLAU846B)图10-1]。 我想会有一些延迟。 [我还没有试过。]
我尝试做的实际上有点复杂...
我已经设置了四个计时器来生成 PWM 信号、但它们之间存在90度相移。
我正在使用中心对齐 PWM、因为这使我能够使用第一个计时器上的第二个通道来生成零、CCU1、LOAD 和 CCD1上的事件。
这些事件对应于四个 PWM 各自占空比的中间、并将触发 ADC 以重复对四个通道进行采样、并在四个采样后生成中断。
但是、我想找到一种确保同步的方法、这样我就不会意外地在 ADC 采样发生移位的情况下结束、因此它会在错误的时间进行采样-这可能是在 PWM 关闭期间...
因此、我需要设法找到一种快速有效的方法来确定最后触发这四个事件中的哪一个。 另一种选择是比较两个计时器的引脚、以查看它们在 ISR 期间是否具有预期状态、但如果占空比较大、则可能无法实现。
有什么建议吗?