为什么我的程序一直进不了中断,自我感觉很简单的程序没什么问题,麻烦大虾帮我看看,谢谢
单片机采用PIC24FJ128GA010 ,用信号发生器产生方波信号至RD13, 程序如下:
void __attribute__((interrupt, auto_psv)) _CNInterrupt(void) //各种电平变化中断
{
unsigned char temp=0;
Delay_ms(10);ClrWdt();
if(_RD13 == 1)
{
temp = 1;
}
else
{
temp = 2;
}
_RD13 = _RD13;
_CNIF = 0;
}
void CN_Init() //电平变化初始化
{
_TRISD13 = 1;
_CN19IE= 1;
_CN19PUE = 1;
_CNIF = 0;
_CNIP = 6;
}
void main()
{
unsigned char temp;
CN_Init();
while(1);
}
输入信号变化时,_CNIF标志能正常置位,就是不能进入中断服务程序,我想请教一下,到底是怎么回事?不胜感激。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
呵呵,中断没打开。
void CN_init(void)
{
/* RD6/CN15 is S3 */
TRISDbits.TRISD6 = 1; // make the port as input
CNEN1bits.CN15IE = 1; // enable interrupt
CNPU1bits.CN15PUE = 0; // disable pull-up resistor
IFS1bits.CNIF = 0; // clear IF
IPC4bits.CNIP = 7; // set IP as 7
IEC1bits.CNIE = 1; // enable CN
}
void __attribute__((interrupt, no_auto_psv)) _CNInterrupt(void)
{
__builtin_btg((unsigned int *)&LATA, 1); // toggle the LED
IFS1bits.CNIF = 0; // clear IF
_temp16 = PORTD; // read for next interrupt
}
一周热门 更多>