当我尝试使用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;
}
}
答案 0 :(得分:1)
“中断ISR”不是有效名称,因为它中有空格。 void interrupt_isr(void)
应该没问题。
答案 1 :(得分:0)
对于PIC16xxx系列MCU,请使用以下格式:
void interrupt () {
} // end interrupt