找回密码
 立即注册
查看: 753|回复: 4

IO中断标志位会不会被错误清除掉

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-05-23 09:43:31

5

主题

9

回帖

335

积分

中级会员

积分
335
发表于 2023-10-6 18:03:54 | 显示全部楼层 |阅读模式
io中断的标志位寄存器不能位读写,只能字节读写。
假如现在P10, P11都使用了IO中断,作了以下处理
if (P1INTF & 0x01)  //p10
                {
                        P1INTF &= ~0x01;
                        //
                }
                if (P1INTF & 0x02)  //p11
                {
                        P1INTF &= ~0x02;
                        //
                }
有如下汇编代码。
     79:                 if (P1INTF & 0x01)  //p10
C:0x0034    90FD11   MOV      DPTR,#0xFD11
C:0x0037    E0       MOVX     A,@DPTR
C:0x0038    30E004   JNB      0xE0.0,C:003F
    80:                 {
    81:                         P1INTF &= ~0x01;
    82:                         //
C:0x003B    E0       MOVX     A,@DPTR
C:0x003C    54FE     ANL      A,#0xFE
C:0x003E    F0       MOVX     @DPTR,A
    83:                 }
  

如果运行到  C:0x003C    54FE     ANL      A,#0xFE  时P11的中断标志位刚好更新到 P1INTF, 运行完 C:0x003E    F0       MOVX     @DPTR,A    P11的中断标记位会被清除掉。
上面的情况会不会发生。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

733

主题

1万

回帖

1万

积分

管理员

积分
16661
发表于 2023-10-6 18:44:08 | 显示全部楼层
截图202310061844045173.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

733

主题

1万

回帖

1万

积分

管理员

积分
16661
发表于 2023-10-6 18:49:24 | 显示全部楼层
STC8H 的【普通I/O都支持的外部中断】参考程序
不是传统的 INT0/INT1/INT2/INT3/INT4
截图202310061848011551.jpg
https://www.stcaimcu.com/forum.p ... id=304&pid=1273



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6092

回帖

1万

积分

超级版主

积分
12731
发表于 2023-10-23 15:50:23 | 显示全部楼层
先判断为1再清除的方法是不会误清除的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:263
  • 最近打卡:2025-04-03 13:38:29

10

主题

52

回帖

1356

积分

金牌会员

积分
1356
发表于 2023-10-27 09:09:39 | 显示全部楼层
如果使能了中断,显然只有标志位为1时才能进入中断服务程序,在中断服务程序中对其清零就可以了,不存在误清零的可能性吧
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 15:05 , Processed in 0.120457 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表