本人在调 CE5.0 + 2410 的 I2C 流驱动,其中 I2C 中断的 ISR 部分有些看不懂,如下:
//
// IIC Interrupt
//
else if ( IntPendVal == INTSRC_IIC )
{
s2410INT->rSRCPND = BIT_IIC; // 清除中断
if (s2410INT->rINTPND & BIT_IIC) s2410INT->rINTPND = BIT_IIC;
s2410INT->rINTMSK = BIT_IIC; // I2C中断禁止
return (SYSINTR_IIC);
}
#define BIT_IIC (0x1<<27)
-----------------------------------------------------------------------
其中【s2410INT->rINTMSK = BIT_IIC;】这句我可以看懂,是屏蔽 I2C 中断;
但是上边两句就看不懂是什么意思了:
s2410INT->rSRCPND = BIT_IIC; // 清除中断
if (s2410INT->rINTPND & BIT_IIC) s2410INT->rINTPND = BIT_IIC;
请大家简单解释一下!多谢!