dspic33ck128mp128测试了一下可以捕捉周期信号,不能捕捉脉宽信号
void SCCP2_CAPTURE_Initialize(void)
{
// CCPON enabled; MOD Edge Detect; CCSEL enabled; CCPSIDL disabled; T32 16 Bit; CCPSLP disabled; TMRPS 1:16; CLKSEL FOSC/2; TMRSYNC disabled;
CCP2CON1L = (0x8000 & 0x7FFF); //Disabling CCPON bit
//RTRGEN disabled; ALTSYNC disabled; ONESHOT disabled; TRIGEN disabled; OPS 4th IC Event; SYNC None; OPSSRC Timer Interrupt Event;
CCP2CON1H = 0x310;
//ASDGM disabled; SSDG disabled; ASDG 0; PWMRSEN disabled;
CCP2CON2L = 0x00;
//ICGSM Level-Sensitive mode; ICSEL IC2; AUXOUT Disabled; OCAEN disabled; OENSYNC disabled;
CCP2CON2H = 0x00;
//OETRIG disabled; OSCNT None; POLACE disabled; PSSACE Tri-state;
CCP2CON3H = 0x00;
//ICDIS disabled; SCEVT disabled; TRSET disabled; ICOV disabled; ASEVT disabled; ICGARM disabled; TRCLR disabled;
CCP2STATL = 0x00;
//TMR 0;
CCP2TMRL = 0x00;
//TMR 0;
CCP2TMRH = 0x00;
//PR 0;
CCP2PRL = 0x00;
//PR 0;
CCP2PRH = 0x00;
//CMP 0;
CCP2RA = 0x00;
//CMP 0;
CCP2RB = 0x00;
//BUF 0;
CCP2BUFL = 0x00;
//BUF 0;
CCP2BUFH = 0x00;
CCP2CON1Lbits.CCPON = 0x1; //Enabling CCP
// Clearing IF flag before enabling the interrupt.
IFS1bits.CCP2IF = 0;
// Enabling SCCP2 interrupt.
IEC1bits.CCP2IE = 0;
// Clearing IF flag before enabling the interrupt.
IFS1bits.CCT2IF = 0;
// Enabling SCCP2 interrupt.
IEC1bits.CCT2IE = 0;
}
|