[ZLG-ARM] I2C 询问?(不能执行中断)

[复制链接]
1911|0
 楼主| geokey 发表于 2007-5-25 11:45 | 显示全部楼层 |阅读模式
I2c, ST, ic, iic, TE
我用的是,LPC2364的IIC2,我用IIC2读写EEROM,AT24C16,<br />下面是我的中断程序,当系统执行中断一次之后就不执行中断了,请问为什么?<br />void&nbsp;IIC2_isr(void)&nbsp;__irq<br />{<br />&nbsp;volatile&nbsp;BYTE&nbsp;state_value;<br />&nbsp;state_value=I22STAT;<br />&nbsp;switch(state_value)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;case&nbsp;0x08:&nbsp;&nbsp;&nbsp;&nbsp;//start&nbsp;service<br />&nbsp;&nbsp;&nbsp;I22DAT=0XA0;//devive&nbsp;address<br />&nbsp;&nbsp;&nbsp;I22CONCLR=0X28;<br />&nbsp;&nbsp;&nbsp;IIC_STAT=I2C_STARTED;<br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case&nbsp;0x10:&nbsp;//Repeat&nbsp;start&nbsp;service<br />&nbsp;&nbsp;&nbsp;IIC_start_clr();<br />&nbsp;&nbsp;&nbsp;IIC_SI_clr();<br />&nbsp;&nbsp;&nbsp;IIC_STAT=I2C_STARTED;<br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case&nbsp;0x18:&nbsp;&nbsp;//DATA&nbsp;transmitted&nbsp;&&nbsp;acknowledged<br />&nbsp;&nbsp;&nbsp;I22DAT=0X00;<br />&nbsp;&nbsp;&nbsp;I22CONCLR=0X08;<br />&nbsp;&nbsp;&nbsp;IIC_STAT=ADD_ACK;<br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;case&nbsp;0x28:&nbsp;&nbsp;//data&nbsp;transmitted&nbsp;&&nbsp;acknowledged<br />&nbsp;&nbsp;&nbsp;I22DAT=0X00;<br />&nbsp;&nbsp;&nbsp;I22CONCLR=0X08;<br />&nbsp;&nbsp;&nbsp;IIC_STAT=DATA_ACK;<br />&nbsp;&nbsp;&nbsp;break;&nbsp;<br />&nbsp;}<br />}<br />用示波器可以看到发送数据0XA0(device&nbsp;address),并且device有响应,但是之后进不了中断了(应该响应I22STAT=0x18),这时候的I22STAT为0xf8,请问为什么啊?哪位大哥可以为小弟检查一下程序,有什么不对的地方吗?<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

55

帖子

0

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