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.
/********* EPWM1 ***************/
EPwm1Regs.TBPRD = 9999;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.SHDWAFULL = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBFULL = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm1Regs.TBCTR = 0;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.CMPA.bit.CMPA = 2000;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM1A on Zero
EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR;
//EPWM7
EPwm7Regs.TBPRD = PWM7_TS ;
EPwm7Regs.TBPHS.bit.TBPHS = 0x0000; // Phase is 0
EPwm7Regs.TBCTR = 0x0000; // Clear counter
//TBCLK = 100M
EPwm7Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
EPwm7Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm7Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm7Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm7Regs.TBCTL.bit.PRDLD = TB_SHADOW ;
EPwm7Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO ; //脉冲中断源 0计数0 1计数周期值 3计数0或周期值 4增计数过程中A周期比较值 5减计数过程中A周期比较值 6增计数过程中B周期比较值 7减计数过程中B周期比较值
EPwm7Regs.ETSEL.bit.INTEN = 1 ;
EPwm7Regs.ETPS.bit.INTPRD = ET_1ST; //每次计数到周期值就产生一个中断(在产生一个中断前需要产生几次中断事件发生)
EPwm7Regs.ETSEL.bit.SOCAEN = 1 ; // Enable SOC on A group
EPwm7Regs.ETSEL.bit.SOCASEL = 4 ; // Select SOC from from CPMA on upcount
EPwm7Regs.ETPS.bit.SOCAPRD = 1 ; // Generate pulse on 1st event(SOC事件周期)
EPwm7Regs.CMPA.bit.CMPA = 1000 ; // Set compare A value
我想在epwm1产生10k的波形,但是实际波形周期达到秒级别的,epwm7产生10k的中断,在中断中计数,然后控制led,led的波形是对的,epwm1的波形怎么回事?