文档介绍了如何基于MC56F84789实现两个eFlexPWM模块的同步,并给出了从示波器复制的PWM信号波形,可以看出eFlexPWMA和eFlexPWMB的所有PWM信号都是同步的。
对于 eFlexPWMA,主同步信号用于同步 eFlexPWMA 的其他子模块。对于 eFlexPWMB 模块,eFlexPWMA 生成 PWMA0_TRIG 信号(与 eFlexPWMA 的主同步信号相同),PWMA0_TRIG 信号通过交叉开关连接到 PWMB0_EXT_SYNC、PWMB1_EXT_SYNC、PWMB2_EXT_SYNC。
我使用直接地址编写了相同的代码,PWM 对所有子模块都运行良好。
像这样,(*(volatile uint16_t *) 0x40033002U) = 0; //PWMA_SM0Initial 0
我可以监控寄存器 PWMA_SMnSTS 来了解 pwm 寄存器的加载是否正确。这样,寄存器重新加载错误标志就不会被启用。
使用结构体时同样不起作用(在 ARM 系列控制器中,所有寄存器映射都是通过结构定义完成的)。
基地址->SM[0].VAL0 = 0;
如果我使用这种配置设置,我可以在寄存器 PWMA_SMnSTS 中看到寄存器重新加载错误标志设置。
请调查一下这个问题。