在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Joey Mao:
是每一次都会有吗?还是偶尔出现
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
user151383853:
第一个波形, 真好是半个波形, 一般这中心对称的模式的下, 由于初始值是0 引起的. 更改大的初值看看
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Mak he:
回复 Joey Mao:
Joey Mao:
并不是每次都出现,但出现的概率还是挺大的。
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Mak he:
回复 user151383853:
Airwill:
你说的初始值是TBCTR(时基计数器)的初始值吗,我改了后又有其他问题出现,如下图:
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Eric Ma:
回复 Mak he:
在初始化PWM前要关掉时钟同步
EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; EDIS;
初始化完成后再打开。
EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS;
在初始化代码中,还要对下面寄存器清零:
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0 EPwm1Regs.TBCTR = 0x0000; // Clear counter
ERIC
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Mak he:
回复 Eric Ma:
Eric:
我修改后试了,确实就是这个问题,谢谢你的回答!
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Mak he:
回复 Eric Ma:
Eric,
你好!
我按照你上面说的方法还是有点问题,还是会出现PWM波启动时不可控的情况。
初始化如下:
EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;EDIS;
//Time Base SubModule Register EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; // set Immediate load,0x0-有阴影寄存器 EPwm2Regs.TBPRD= 1000; EPwm2Regs.TBPHS.half.TBPHS =0; EPwm2Regs.TBCTR = 0;//时基计数器 EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//0x0-1分频 EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1;//0x0-1分频,TBCLK = SYSCLKOUT / (HSPCLKDIV × CLKDIV) EPwm2Regs.TBCTL.bit.PHSEN = TB_DISABLE;//与相位相关,没使用 EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // // Counter compare submodule registers EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;//CC_CTR_PRD;//0x1-当CTR=PRD时,影像寄存器里面的值装载到工作寄存器 EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;//CC_CTR_PRD; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;//0x0 EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
// Action Qualifier SubModule Registers EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//AQ_CLEAR; EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;//AQ_SET; EPwm2Regs.AQCTLB.bit.CBU = AQ_CLEAR; EPwm2Regs.AQCTLB.bit.CBD = AQ_SET;
EALLOW; EPwm2Regs.TZFRC.bit.OST = 1; // Turn off the PWM EDIS; EPwm2Regs.CMPB =400; EPwm2Regs.CMPA.half.CMPA = 600; //Initialize the CMP register
EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;EDIS;
使用时通过两个按键来切换:
按A键执行下面代码:
EALLOW; EPwm2Regs.TZFRC.bit.OST = 1; EDIS;
按B键执行下面代码:
EPwm2Regs.CMPB =400;//(Uint16)((Uint32)uiFswRegu*uiDutyRatio/100); EPwm2Regs.CMPA.half.CMPA =600;// (uiFswRegu-EPwm2Regs.CMPB); //Initialize the CMP register EPwm2Regs.TBCTR =0;//400 EALLOW; EPwm2Regs.TZCLR.bit.OST = 1; EDIS;
从A键向B键切换时,还是会出现问题所描述的情况,请问是什么原因?
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Eric Ma:
回复 Mak he:
EPwm2Regs.TZCLR.bit.OST = 1;
上面这个代码之前没有插入其他代码吧。
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Mak he:
回复 Eric Ma:
Eric,
确实没有插入其他代码。
在产生PWM波那一瞬间会有时如下图,感觉有点不可控,有时也是正常的,不知道什么原因,求解?
正常波形如下:
Eric Ma:
回复 Mak he:
Mak
你可以把工程附上来吗,我找时间可以测一下。
理论上是没问题的。
Eric