打印
[ZLG-ARM]

关于VIC,关于伪中断!!!

[复制链接]
1675|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vimman|  楼主 | 2008-3-29 21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的项目只用到了I2C和定时器中断,把I2C中断设置成优先级最高;但我是通过VICIntEnClr寄存器禁止定时器中断的,I2C中断始终使能。当禁止定时器中断时,我给VICDefVectAddr注册了一个ISR防止所谓的伪中断。I2C发送数据后很容易执行VICDefVectAddr注册的ISR,请问是否是定时器中断和I2C中断同时产生所以引发了伪中断还是其他原因?另外,使用VICIntEnClr关中断有什么不良后果?请各位大虾指教!

相关帖子

沙发
armecos| | 2008-3-30 23:56 | 只看该作者

应该是你程序的问题,

是不是中断初始化部分没有写对造成的?没有遇到过你说的这种现象。

ecos中断文档有关于中断处理的详细描述:
ecos中断文档

使用特权

评论回复
板凳
zlgarm| | 2008-3-31 20:07 | 只看该作者

VIC中断

vimman 您好:
     这个是您的程序问题,请在刚开始中断处理时,就禁止定时器中断,然后通过清零VICVectAddr寄存器,再来更新优先级。
                                            by zlgarm_zhanghuping

使用特权

评论回复
地板
vimman|  楼主 | 2008-4-1 12:45 | 只看该作者

我的处理过程

1.通过VICIntEnClr  = 0xFFFFFDFF关闭定时器中断,不关闭I2C中断;
2.通过I2C发送数据,等待I2C完成(即等待I2C中断);
3.通过VICIntEnable = 0x00000210开定时器中断;
这时候会发现程序会跑进VICDefVectAddr里面,
或者当I2C Device未连接时,也会这样,请问我的程序哪里有问题?

使用特权

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

本版积分规则

12

主题

81

帖子

0

粉丝