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.

28335 CAP无法中断问题

Other Parts Discussed in Thread: CONTROLSUITE

利用28335的cap5捕获23kHz左右的频率,但是无法进入到中断,请问程序上哪里有问题?

GpioCtrlRegs.GPBPUD.bit.GPIO48 = 0; //
GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 1; // ecap
GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 0; // 使cap5时钟与系统时钟输出同步

ECap5Regs.ECEINT.all = 0x0000; // Disable all capture interrupts
ECap5Regs.ECCLR.all = 0xFFFF; // Clear all CAP interrupt flags
ECap5Regs.ECCTL1.bit.PRESCALE = 0; //对外部信号不分频
ECap5Regs.ECCTL1.bit.CAPLDEN = 0; // Disable CAP1-CAP4 register loads
ECap5Regs.ECCTL2.bit.TSCTRSTOP = 0; // Make sure the counter is stopped

// Configure peripheral registers
ECap5Regs.ECCTL2.bit.CONT_ONESHT = 0; // continuous mode
ECap5Regs.ECCTL2.bit.STOP_WRAP = 3; // Stop at 4 events
ECap5Regs.ECCTL1.bit.CAP1POL = 0; // Rising edge
ECap5Regs.ECCTL1.bit.CAP2POL = 0; // Rising edge
ECap5Regs.ECCTL1.bit.CAP3POL = 0; // Rising edge
ECap5Regs.ECCTL1.bit.CAP4POL = 0; // Rising edge
ECap5Regs.ECCTL1.bit.CTRRST1 = 0; // Difference operation
ECap5Regs.ECCTL1.bit.CTRRST2 = 0; // Difference operation
ECap5Regs.ECCTL1.bit.CTRRST3 = 0; // Difference operation
ECap5Regs.ECCTL1.bit.CTRRST4 = 0; // Difference operation
ECap5Regs.ECCTL2.bit.SYNCI_EN = 0; // Enable sync in
ECap5Regs.ECCTL2.bit.SYNCO_SEL = 2; // Pass through
ECap5Regs.ECCTL1.bit.CAPLDEN = 1; // Enable capture units
ECap5Regs.ECCTL2.bit.CAP_APWM =0;
ECap5Regs.ECEINT.bit.CEVT4 = 1; // 4 events = interrupt

ECap5Regs.ECCTL2.bit.TSCTRSTOP = 1; // Start Counter
//ECap5Regs.ECCTL2.bit.REARM = 1; // arm one-shot

EALLOW;
PieVectTable.ECAP5_INT = &Ecap5_isr;
EDIS;

PieCtrlRegs.PIEIER4.bit.INTx5 = 1;

  IER |= M_INT4 ;

EALLOW;
SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK=1;
EDIS;

万分感谢!