2410 I2C 的 ISR,看不懂,帮忙解释一下!

zaodt 2009-06-20 02:53:18
本人在调 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;


请大家简单解释一下!多谢!
...全文
280 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeanszu 2009-06-24
  • 打赏
  • 举报
回复
向对应的位写一清中断
zhj8727 2009-06-24
  • 打赏
  • 举报
回复
uping
西山锈码 2009-06-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gooogleman 的回复:]
楼主看数据手册啊。

2440/2410 比较奇怪,当发生一次中断后,
要清除中断时要把该位置一的,通常都是置零,所以要特别小心。
if (s2410INT->rINTPND & BIT_IIC) s2410INT->rINTPND = BIT_IIC;


没有什么啊,就是寄存器设置而已。你仔细对比其他的发现是一个样。
[/Quote]
同意gooogleman的见解!
SRCPND 和INTPND 这两个未决寄存器都是通过对其对应位写一次1来清除中断响应的。
wdw1600 2009-06-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xingxing_y 的回复:]
中断源,请求源寄存器清零操作需要向对应位置一的。
[/Quote]
是这样的,2440手册上有说明
LH806732 2009-06-23
  • 打赏
  • 举报
回复
UP
xingxing_y 2009-06-21
  • 打赏
  • 举报
回复
中断源,请求源寄存器清零操作需要向对应位置一的。
xyj0663 2009-06-20
  • 打赏
  • 举报
回复
建议看一下中断处理那一节,里面有说到2410整个的中断是怎么处理的,还有这几个寄存器是怎么用的
gooogleman 2009-06-20
  • 打赏
  • 举报
回复
楼主看数据手册啊。

2440/2410 比较奇怪,当发生一次中断后,
要清除中断时要把该位置一的,通常都是置零,所以要特别小心。
if (s2410INT->rINTPND & BIT_IIC) s2410INT->rINTPND = BIT_IIC;


没有什么啊,就是寄存器设置而已。你仔细对比其他的发现是一个样。

zaodt 2009-06-20
  • 打赏
  • 举报
回复
哦,上边一句有错误,少了一个位或符号,修正如下:

s2410INT->rINTMSK |= BIT_IIC; // I2C中断禁止
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

19,523

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧