打印
[ZLG-ARM]

I2C 询问?(不能执行中断)

[复制链接]
1166|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
geokey|  楼主 | 2007-5-25 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
I2c, ST, ic, iic, TE
我用的是,LPC2364的IIC2,我用IIC2读写EEROM,AT24C16,
下面是我的中断程序,当系统执行中断一次之后就不执行中断了,请问为什么?
void IIC2_isr(void) __irq
{
 volatile BYTE state_value;
 state_value=I22STAT;
 switch(state_value)
 {
   case 0x08:    //start service
   I22DAT=0XA0;//devive address
   I22CONCLR=0X28;
   IIC_STAT=I2C_STARTED;
   break;
   case 0x10: //Repeat start service
   IIC_start_clr();
   IIC_SI_clr();
   IIC_STAT=I2C_STARTED;
   break;
   case 0x18:  //DATA transmitted & acknowledged
   I22DAT=0X00;
   I22CONCLR=0X08;
   IIC_STAT=ADD_ACK;
   break;
   case 0x28:  //data transmitted & acknowledged
   I22DAT=0X00;
   I22CONCLR=0X08;
   IIC_STAT=DATA_ACK;
   break; 
 }
}
用示波器可以看到发送数据0XA0(device address),并且device有响应,但是之后进不了中断了(应该响应I22STAT=0x18),这时候的I22STAT为0xf8,请问为什么啊?哪位大哥可以为小弟检查一下程序,有什么不对的地方吗?

相关帖子

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

本版积分规则

22

主题

55

帖子

0

粉丝