【发布时间】:2018-12-13 22:26:31
【问题描述】:
我正在尝试在 dsPIC33EP32MC204 上配置输入捕捉模块 (IC1) 以将其用于占空比测量。作为输入,我想使用 RP35 引脚。为了测试配置的正确性,我做了一个实验:我连接了一个带有 1Hz PWM 脉冲的脉冲发生器,并设置了输入捕捉来捕捉每个上升沿。我估计这些上升沿会触发输入捕捉中断,每次调用中断都会导致 LED 闪烁。不幸的是,它不起作用。如果有人能告诉我问题出在哪里,我将不胜感激。代码:
void Init_InputCapture(void)
{
IC1CON1bits.ICSIDL = 0;
IC1CON1bits.ICTSEL = 0b111; // Peripheral clock (FP) is the clock source of the ICx
IC1CON1bits.ICI = 0b00; //
IC1CON1bits.ICM = 0b011; //Capture mode every edge rising
IC1CON2bits.ICTRIG = 0; // = Input source used to trigger the input capture timer (Trigger mode)
IC1CON2bits.SYNCSEL = 0b00000; //IC1 module synchronizes or triggers ICx
IC1CON2bits.IC32 = 0; // 16 bit mode only
// Enable Capture Interrupt And Timer2
IPC0bits.IC1IP = 1; // Setup IC1 interrupt priority level
IFS0bits.IC1IF = 0; // Clear IC1 Interrupt Status Flag
IEC0bits.IC1IE = 1; // Enable IC1 interrupt
}
中断:
void __attribute__((__interrupt__, no_auto_psv)) _IC1Interrupt(void)
{
LATBbits.LATB9 = ~LATBbits.LATB9;
IFS0bits.IC1IF = 0;
}
以及来自main()的相关代码:
__builtin_write_OSCCONL(OSCCON & ~(1<<6));
RPINR7 = 0x23; ; // IC1 mapped to RP35
__builtin_write_OSCCONL(OSCCON | (1<<6));
在设置过程中,我按照家庭参考手册中的说明进行操作。
【问题讨论】:
标签: input configuration embedded microcontroller pic