回复 20楼 花花世界 的帖子
报错我还得查查,没遇到过。
现在这个中断,是这样,先关掉,然后查询是哪一个中断然后打开,这样就可能两个中断都响应,有这种可能吧? 如果换作我说的那种,就一次只能执行一个了。你感觉呢?
Error[000] C:\DOCUME~1\HAO\LOCALS~1\Temp\_2U8.AAB 877 : Multiply defined symbol int_func
Error[000] C:\DOCUME~1\HAO\LOCALS~1\Temp\_2U8.AAB 894 : Multiply defined symbol saved_w
Error[000] C:\DOCUME~1\HAO\LOCALS~1\Temp\_2U8.AAB 898 : Multiply defined symbol int_restore
Error[000] C:\DOCUME~1\HAO\LOCALS~1\Temp\_2U8.AAB 907 : Multiply defined symbol int_entry
Error[000] C:\DOCUME~1\HAO\LOCALS~1\Temp\_2U8.AAB 913 : Multiply defined symbol saved_status
把函数声明去掉,有两个中断是这样的错误
回复 22楼 花花世界 的帖子
http://www.pic16.com/bbs/dispbbs.asp?BoardID=8&ID=44350
这个帖子,你看一下,可能是需要声明一下吧。注意一下声明类型,出去一下,有事留言
对~这样的话是一次只能执行一个中断,而且当有两个中断申请的时候先执行前面的,这样不是设置优先级么~~我是这么认为的~~
有两个中断出现的错误在上面贴出来了,不是声明的问题~~
还有,很感谢sjl2001的耐心帮助·~
回复 24楼 花花世界 的帖子
问题解决了吗? 网上找了一下,也有人遇到过这个问题,确实是多个中断造成的,pic只有一个中断入口。
http://zhidao.baidu.com/question/195063159.html
看一下这个。
这样的话就只能用一个中断。
void interrupt intin()
{
GIE=0;
if(TMR1IF) timer1interrupt();
if(CCP2IF) ccpinterrupt();
GIE=1;
}
就是利用检查标志位来响应各自的中断,但是我感觉你的上面这段程序的响应不是很对。如果被识别成多中断了,是不是你timer1interrupt这个子程序命名被误会了呢?
你再看一下这个
http://zhidao.baidu.com/question/195063159.html
我觉得开关中断应该在if(1)之后去开关。
我也没写过多中断的,也是自己学习的过程,呵呵
回复 26楼 花花世界 的帖子
我也是在猜测啊,等我今天回去编译一下试试。呵呵
我编译好的程序
您好,不好意思,前一段有点忙
今天刚抽时间编译了一下,c文件给你,///注释的地方是我加的,就改了几个地方,你看看吧。希望能有所帮助吧。
abc.rar
(2.28 KB)
(下载次数: 24, 2011-1-28 08:45 上传)