飞思卡尔ICC中断:如果表10一8中任何一个事件发生,且IICIE位已经置l,则产生一个IIC中断。中断由IICIF(IIC状态寄存器中)位驱动,由IICIE位(IIC状态寄存器中)屏蔽(将该位清零,则屏蔽掉中断功能)。IICIF位必须在中断子程序中通过对其写1进行清零。用户能通过读状态寄存器确定中断类型。
1)字节传输中断:TCF(传输结束标志)位在第9个时钟的下降沿被置1,指明字节传输结果。
2)地址检测中断:当本身确定的地址(IIC地址寄存器)与呼叫地址匹配时,状态寄存器中IAAS位被置1。这时如果IICIE被置l,则CPU进入中断状态。CPU必须检查SRW位和设置它相应的TX模式。
3)仲裁丢失中断:IIC是一个真正的多主总线,允许不止一个主器件连接到它。如果两个或更多主器件试图在同一时间控制总线,一个数据仲裁进程确定竞争主器件的相对优先级。IIC模块在丢失数据仲裁进程声明这个中断,在状态寄存器中ARBL位被置1。在下列情况下仲裁丢失:
①当主器件在地址或数据传输周期期间驱动为高时,SDA采样为低。
②当主器件在一个数据接收周期的应答位期间驱动为高时,SDA采样为低。
③当总线忙时,尝试一个START周期。
④在从模式中,请求一个重复的START周期。
⑤当主器件未请求,监测到一个STOP条件。此位必须通过软件对其写1才能被清除。
阅读更多请您关注: