[PIC®/AVR® MCU] pic一个很简单的中断函数老是编译错误,看下我的中断哪里错了?

[复制链接]
3083|7
手机看帖
扫描二维码
随时随地手机跟帖
gym216|  楼主 | 2018-8-28 19:34 | 显示全部楼层 |阅读模式
用的X IDE器件16f1503编译器XC8 V2.0 写个简单的中断函数,编译提示错误:
"C:\Program Files\Microchip\xc8\v2.00\bin\xc8-cc.exe"  -mcpu=16F1503 -c  -fno-short-double -fno-short-float -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=default  -msummary=-psect,-class,+mem,-hex,-file  -ginhx032 -Wl,--data-init -mno-keep-startup -mno-osccal -mno-resetbits -mno-save-resetbits -mno-download -mno-stackcall   -std=c99 -gdwarf-3 -mstack=compiled:auto:auto     -o build/default/production/main.p1 main.c
main.c:76:6: error: variable has incomplete type 'void'
void interrupt isr()
     ^
main.c:76:15: error: expected ';' after top level declarator
void interrupt isr()
              ^
              ;
2 errors generated.
(908) exit status = 1

下面这是中断函数
void interrupt isr()
{
    if(T0IE&&T0IF)
    {
        T0IF=0;
        sys_ms++;
    }
}
gym216|  楼主 | 2018-8-29 08:05 | 显示全部楼层
问题已经解决。xc8 2.0 的中断函数 改了 void __interrupt() ISR(void) 这样才能通过编译

使用特权

评论回复

评论

wuxian4682 2018-9-30 10:23 回复TA
楼主厉害啊,你的提醒也让我弄了好几天不进中断函数的问题解决了。这Microchip就没有一个规范的例程吗?非得让大家这么苦苦摸索。 
hyxstrive| | 2018-9-19 21:52 | 显示全部楼层
gym216 发表于 2018-8-29 08:05
问题已经解决。xc8 2.0 的中断函数 改了 void __interrupt() ISR(void) 这样才能通过编译 ...

楼主,我刚开始学习PIC单片机C语言,请多多指教。

使用特权

评论回复
西21值| | 2018-11-5 15:14 | 显示全部楼层

使用特权

评论回复
一苏苏| | 2019-1-4 14:07 | 显示全部楼层
如您所说的一样,我也是XC8的2.0版本,按照你说的方式才能编译通过,请问您是怎么发现这个问题的,去哪里可以看到正确的中断入口写法

使用特权

评论回复
mzb2012| | 2019-1-4 14:32 | 显示全部楼层
不妨试试MCC(MPLAB Code Configurator) 这个插件能生成很多代码,很多系列都支持PIC10/PIC12/PIC16/PIC18

使用特权

评论回复
淘猫汤姆| | 2019-1-7 10:37 | 显示全部楼层
一苏苏 发表于 2019-1-4 14:07
如您所说的一样,我也是XC8的2.0版本,按照你说的方式才能编译通过,请问您是怎么发现这个问题的,去哪里可 ...

编译器手册里面有说明,只是很少有人看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则