如圖,就是一個f28335的epwm程式,初始化和中斷檢查過好幾次了,沒有問題,可是每次運行,計數的xA到26就不再進入中斷,其他幾路PWM也是這樣,即使把其他幾路pwm和ADC程式都刪了,只留pwm1,也是這樣,網上查了也沒有查到類似問題的解決方法~跪求解惑

pwm初始化程式void Init_EPwm1(void)
{
EALLOW;
EPwm1Regs.TBPRD = SP; // Set timer period
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
// Setup TBCTL
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; //設定在計數值為0 時輸出同步信號
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // ?Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; //?
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Load registers every ZERO
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
// Setup compare
EPwm1Regs.CMPA.half.CMPA =DutyA;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM1A on Zero
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; //2路PWM輸出信號均由死區模塊輸出
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_LOC; //互補低電平有效 HIC為高電平有效
EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL; //以EPWMXA信號為輸入信號
EPwm1Regs.DBRED = Dead_time;
EPwm1Regs.DBFED = Dead_time;
EPwm1Regs.ETSEL.bit.INTSEL=2;
EPwm1Regs.ETSEL.bit.INTEN=1;
EPwm1Regs.ETPS.bit.INTPRD=1;
EPwm1Regs.ETCLR.bit.INT=1;
EDIS;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/154106.html
標籤:單片機/工控
上一篇:TX—51單片機 六位數碼管
下一篇:電賽輔助電源
