繁体   English   中英

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

[英]“incomplete type is not allowed” for interrupt service routine for 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;
    }
}

“ interrupt ISR”不是有效名称,因为其中有一个空格。 void interrupt_isr(void)应该可以。

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

void interrupt () {

  } // end interrupt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM