28377S中提供了EPWMxLINK寄存器,但是使用手册中对其功能描述较为简单,我在使用中对其效果不太确定,特来此处求教。
按照我对用户手册中描述的理解,EPWMxLINK的功能主要是针对两个不同的EPWM模块提供了一种同时刷新寄存器的手段。EPWM模块中TBPRD、CMPA:CMPAHR、CMPB:CMPBHR、CMPC、CMPD寄存器都有对应的影寄存器(Shadow Register),对这些寄存器的赋值操作实际是将数值写入影寄存器中然后等待同步信号到来将这些值载入到对应的Active Register中实现对输出EPWM波的控制。EPWMxLINK的功能是在主路寄存器加载影寄存器中的数值的同时,加载从路EPWM模块对应的寄存器值。从而实现两路EPWM信息的同步刷新。
以下面的程序段为例:
EPwm8Regs.EPWMXLINK.bit.CMPALINK=6;
EPwm8Regs.EPWMXLINK.bit.TBPRDLINK=6;
这两句程序设置使得EPWM7的CMPA和TBPRD寄存器在加载影寄存器中的值的同时,也触发EPWM8的CMPA和TBPRD寄存器从与之对应的影寄存器中加载相关数值。如果EPWM7初始化中设置EPwm7Regs.TBCTL.bit.PRDLD=0; EPwm7Regs.AQCTL.bit.LDAQAMODE=0即EPWM7在CTR=0时刻从影寄存器中加载数值(默认设置),在该设置条件下当EPWM7的CTR=0时刻,同时加载EPWM7和EPWM8的CMPA、TBPRD寄存器。
不知道我这样理解是否有问题?请各位大侠指导!多谢多谢!
user5888209:
不知道你的这个问题解决了没有,我本来被这个搞迷糊了,看了你的解释,觉得没毛病。
ps:我被搞蒙的原因主要在EPWMXLINK的X没有小写。。。