0

当我尝试使用 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;
    }
}
4

2 回答 2

1

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

于 2012-11-22T04:50:59.760 回答
0

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

void interrupt () {

  } // end interrupt
于 2012-11-22T12:14:05.450 回答