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.

TMS320F28335: 如何将ePWM/HRPWM 寄存器重新映射到PF3

Part Number: TMS320F28335

Dear everyone:

我在利用DMA搬运装ePWM的周期值与比较值的时候,为了使DMA响应epwm需要配置ePWM/HRPWM模块重新映射到PF3·,查阅了相关资料后,我写了如下代码:

volatile Uint16 *MAPCNF=(Uint16 *)0x702E; 
EALLOW;
*MAPCNF|=0x01;
EDIS;

可是当我在epwm模块加上这些代码后,epwm就无法产生波形了,ccs的register里面epwm和epwmmirror值都为零,

  • 使用了CCS debug工具,一行一行代码执行下来并看寄存器的值,终于知道了原因。这行代码没有错,确实是这样写的,主要的是代码放的位置很重要。要在epwm初始化函数里要放在最后或者是放在epwm函数体后面执行。原因是要先等各个初始化值例如时钟频率,cmpa,向上计数等先存入epwm的寄存器里面,等运行到映射代码时,会把所有值一起载入epwm mirro 里面,这个时候就可以产生波形了。重要的是代码放的位置。