请问一下大家有没有遇到,pic单片机中断入口函数编译失败?(在xc8编译器手册例程里的也不行)

qq_36356774 2019-01-06 05:02:13
void __interrupt tc_int(void)
{
if (TMR0IE && TMR0IF)
{ TMR0IF=0;
++tick_count;
return;
}
// process other interrupt sources here, if required
}
中断函数一直编译失败。注释掉编译就可以通过。这段代码来自于xc8编译器手册里的。
编译器输出的信息为:
lock.c:94:6: error: variable has incomplete type 'void'
void interrupt tc_int(void)
lock.c:94:15: error: expected ';' after top level declarator
void interrupt tc_int(void)
求前辈帮忙解答一下,非常感谢。
开发环境为 MPLAB X IDE v5.10;
编译器为:xc8 2.00版
...全文
920 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小东工作室 2019-06-20
  • 打赏
  • 举报
回复
楼主,问题提出来,解决了也不说一下,太坑了。 我也在调试串口中断时遇到这个问题,我用的开发环境MPLAB X IDE 5.15 编译器 XC8 2.05 解决办法:把void interrupt 中断名(void) 改为 void __interrupt() 中断名(void) 下划线是两个!!! 改完就好了,大家可以试试。
ajiang12345319 2019-05-02
  • 打赏
  • 举报
回复
什么原因我也想知道,我也有这样的问题
yishumei 2019-01-08
  • 打赏
  • 举报
回复
引用 3 楼 qq_36356774 的回复:
删掉也不行,头都大了
楼主,其他网站有相似问题,有人回复说:新建的工程应该和mplab在同一个盘符下,mplab在C盘工程也要放在C盘。你可以试一下。
qq_36356774 2019-01-08
  • 打赏
  • 举报
回复
非常感谢!!!找到了。
yishumei 2019-01-08
  • 打赏
  • 举报
回复 1
引用 5 楼 qq_36356774 的回复:
非常谢谢!!我刚试了好像还是不行
楼主,编译器手册里面有说明,把 void __interrupt tc_int(void) 改成void __interrupt() tc_int(void)就可以了。
qq_36356774 2019-01-08
  • 打赏
  • 举报
回复
非常谢谢!!我刚试了好像还是不行
fly 100% 2019-01-07
  • 打赏
  • 举报
回复
可能是换了编译环境正式将warning 严格成了error 了,先吧return 删掉试试吧
qq_36356774 2019-01-07
  • 打赏
  • 举报
回复
删掉也不行,头都大了
qq_36356774 2019-01-06
  • 打赏
  • 举报
回复
我去年用的是xc8 1.21.直接用的官网的,编译一切正常。最近选的那款单片机,在 xc8 1.21里没有相关头文件。就安装了一个2.0版本。

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧