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.
F28335中可以配置pwm1a/1b两路PWM,我之前是配置这两路同相位,我是这样配置的(*ePWM[ch1]).TBCTL.bit.PHSEN = 1;(*ePWM[ch1]).TBPHS.half.TBPHS = 0;这两句话是不是配置同相位的pwm,不知道配置的对不对?
,还有我现在想配置这两路pwm1A/1B,两者可以互差90度相位或者45度相位,甚至是配置可变的任意相位,应该怎样设置,谢谢
那就是不能配置epwm1A和1B的相位,但是在F28335的Example_2833xEqep_pos_speed的程序中,他模仿AB两项互差的信号,我用示波器看了一下,相位上是互差了90度,这是pwm初始化的配置
EPwm1Regs.TBSTS.all=0;
EPwm1Regs.TBPHS.half.TBPHS =0;
EPwm1Regs.TBCTR=0;
EPwm1Regs.CMPCTL.all=0x50; // immediate mode for CMPA and CMPB
EPwm1Regs.CMPA.half.CMPA=SP/2;
EPwm1Regs.CMPB=0;
EPwm1Regs.AQCTLA.all=0x60; // CTR=CMPA when inc->EPWM1A=1, when dec->EPWM1A=0
EPwm1Regs.AQCTLB.all=0x09; // CTR=PRD ->EPWM1B=1, CTR=0 ->EPWM1B=0
EPwm1Regs.AQSFRC.all=0;
EPwm1Regs.AQCSFRC.all=0;
EPwm1Regs.TZSEL.all=0;
EPwm1Regs.TZCTL.all=0;
EPwm1Regs.TZEINT.all=0;
EPwm1Regs.TZFLG.all=0;
EPwm1Regs.TZCLR.all=0;
EPwm1Regs.TZFRC.all=0;
EPwm1Regs.ETSEL.all=0x0A; // Interrupt on PRD
EPwm1Regs.ETPS.all=1;
EPwm1Regs.ETFLG.all=0;
EPwm1Regs.ETCLR.all=0;
EPwm1Regs.ETFRC.all=0;
EPwm1Regs.PCCTL.all=0;
EPwm1Regs.TBCTL.all=0x0010+TBCTLVAL; // Enable Timer 0x201E
EPwm1Regs.TBPRD=SP;
谢谢您的解答,但是我还是有点不明白PWM1A和1B是相同的周期值,我配置的是up-down的计数方式,1A的比较值是sp/2,但是1B的比较值是0,怎么会发出方波呢,谢谢
EPwm1Regs.AQCTLA.all=0x60; // CTR=CMPA when inc->EPWM1A=1, when dec->EPWM1A=0
EPwm1Regs.AQCTLB.all=0x09; // CTR=PRD ->EPWM1B=1, CTR=0 ->EPWM1B=0
这里可以设置计数值等于 周期值、比较值(上计数、下计数)、0时,对应的不同动作