回复 20楼 花花世界 的帖子

报错我还得查查,没遇到过。

现在这个中断,是这样,先关掉,然后查询是哪一个中断然后打开,这样就可能两个中断都响应,有这种可能吧? 如果换作我说的那种,就一次只能执行一个了。你感觉呢?
点赞  2011-1-22 14:21
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
把函数声明去掉,有两个中断是这样的错误
点赞  2011-1-22 14:23

回复 22楼 花花世界 的帖子

http://www.pic16.com/bbs/dispbbs.asp?BoardID=8&ID=44350
这个帖子,你看一下,可能是需要声明一下吧。注意一下声明类型,出去一下,有事留言
点赞  2011-1-22 14:27
对~这样的话是一次只能执行一个中断,而且当有两个中断申请的时候先执行前面的,这样不是设置优先级么~~我是这么认为的~~
有两个中断出现的错误在上面贴出来了,不是声明的问题~~
还有,很感谢sjl2001的耐心帮助·~
点赞  2011-1-22 14:33

回复 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)之后去开关。

我也没写过多中断的,也是自己学习的过程,呵呵
点赞  2011-1-22 18:33
这里的帖子我有点没看懂,可能是这个原因导致的么~~
http://www.eetemc.cn/danpianji/p25149614435928.html
点赞  2011-1-22 20:25

回复 26楼 花花世界 的帖子

我也是在猜测啊,等我今天回去编译一下试试。呵呵
点赞  2011-1-23 17:26

我编译好的程序

   您好,不好意思,前一段有点忙

   今天刚抽时间编译了一下,c文件给你,///注释的地方是我加的,就改了几个地方,你看看吧。希望能有所帮助吧。

abc.rar (2.28 KB)
(下载次数: 24, 2011-1-28 08:45 上传)

点赞  2011-1-28 08:45
12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复