PIC的中断服务程序“不允许不完整类型”

时间:2012-11-22 04:34:29

标签: c pic

当我尝试使用PICMicro C编译器编译PIC程序的代码时,我得到了错误“不允许不完整类型”的代码的中断服务程序部分:

char chB = 0;
int clicks = 0;
void interrupt ISR(void) //incomplete type is not allowed
{
    if(RBIF == 1)
    {
        clicks++;
        chB = PORTB;
        RBIF = 0;
    }
}

检查多个来源后,我仍然看不到服务程序的写错方式。

编辑: 感谢您的帮助,我找到了解决方案:

char chB = 0;
int clicks = 0;
#pragma vector = 0x04
__interrupt void isr(void)
{
    if(RBIF == 1)
    {
        clicks++;
        chB = PORTB;
        RBIF = 0;
    }
}

2 个答案:

答案 0 :(得分:1)

“中断ISR”不是有效名称,因为它中有空格。 void interrupt_isr(void)应该没问题。

答案 1 :(得分:0)

对于PIC16xxx系列MCU,请使用以下格式:

void interrupt () {

  } // end interrupt