[ZLG-ARM] 关于VIC,关于伪中断!!!

[复制链接]
2394|3
 楼主| vimman 发表于 2008-3-29 21:17 | 显示全部楼层 |阅读模式
我的项目只用到了I2C和定时器中断,把I2C中断设置成优先级最高;但我是通过VICIntEnClr寄存器禁止定时器中断的,I2C中断始终使能。当禁止定时器中断时,我给VICDefVectAddr注册了一个ISR防止所谓的伪中断。I2C发送数据后很容易执行VICDefVectAddr注册的ISR,请问是否是定时器中断和I2C中断同时产生所以引发了伪中断还是其他原因?另外,使用VICIntEnClr关中断有什么不良后果?请各位大虾指教!
armecos 发表于 2008-3-30 23:56 | 显示全部楼层

应该是你程序的问题,

是不是中断初始化部分没有写对造成的?没有遇到过你说的这种现象。<br /><br />ecos中断文档有关于中断处理的详细描述:<br /><b>ecos中断文档</b>
zlgarm 发表于 2008-3-31 20:07 | 显示全部楼层

VIC中断

vimman&nbsp;您好:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个是您的程序问题,请在刚开始中断处理时,就禁止定时器中断,然后通过清零VICVectAddr寄存器,再来更新优先级。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;zlgarm_zhanghuping
 楼主| vimman 发表于 2008-4-1 12:45 | 显示全部楼层

我的处理过程

1.通过VICIntEnClr&nbsp;&nbsp;=&nbsp;0xFFFFFDFF关闭定时器中断,不关闭I2C中断;<br />2.通过I2C发送数据,等待I2C完成(即等待I2C中断);<br />3.通过VICIntEnable&nbsp;=&nbsp;0x00000210开定时器中断;<br />这时候会发现程序会跑进VICDefVectAddr里面,<br />或者当I2C&nbsp;Device未连接时,也会这样,请问我的程序哪里有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

81

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部