在好奇号冲浪板上使用dsPIC33CK256MP508。
尝试在高分辨率模式下运行4个PWM生成器。
我将在单周期模式下运行它们。试图弄清楚如何准确地同时触发所有4个信号,或者从相同的事件触发它们,但我不能理解这个外围设备相当复杂的触发安排。
数据表显示的图表似乎表明它们都从相同的时基运行,或者至少它们看起来都在完全相同的时间启动,但实际上,当每个脉宽调制发生器被启用或使用PGxSTATbits.TRSET启动一个周期时,每个周期将按顺序启动,因为它们由顺序命令在不同的时间启动。
有什么简单的方法可以做到这一点吗?理想情况下,我想写一点代码,甚至驱动一个管脚或其他东西,这样每个生成器都能同时启动。只要它们同时启动,在触发和实际启动之间可能会有一些延迟。
谢谢。
发布于 2020-11-11 15:04:38
您可以初始化不同PWM定时器/计数器的计数器寄存器的值,使其同步启动。实际值取决于为每个定时器设置TRSET位与预分频器选项之间的指令数量。
首先,为您的模块/函数生成汇编列表,并手动计数触发每个PWM定时器之间的时钟周期。这将为您提供PWM定时器之间的精确相位差。
一旦准确知道相位差的周期数,在顺序触发之前,通过设置每个计数器的值来调整PWM计数器/定时器的相位。
换句话说,您必须对时钟周期进行计数并设置初始计数器值,以便它们都达到零或在启动时同时进行比较。
https://stackoverflow.com/questions/64470559
复制相似问题