cz81 发表于 2023-6-7 21:12:42

stc8h8k64u普通io中断,不能进入void common_isr() interrupt 13

问题: stc8h8k64u普通io中断,不能进入void common_isr() interrupt 13内部?
         sbit TPIN7 = TPIN^7 中, TPIN含义是? pdf没找到此资料.


判断方法: 全速运行不能进入void common_isr() interrupt 13内第一行设置断点处
               47 48采用10k电阻上拉,按下按键万用表测试47 48脚为低电平
说明:程序是 "乘风飞扬"大神4天前发的, 我将其他io中断屏蔽打开了

乘风飞扬 发表于 2023-6-8 10:55:51

你的判断方法是通过仿真实现的。
我打开你发的项目看了一下,仿真是设置的还是默认的软件模拟仿真,这跟硬件完全没有关联



如果你想看到芯片的运行效果,需要使用硬件仿真,论坛编译器/仿真器版块有教程可以参考:


STC8H8K64U自带硬件USB直接仿真步骤
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1033
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)


另外,使用硬件仿真时需要注意仿真接口(默认P3.0,P3.1)在程序里不能使用,所以仿真时需要将这两个脚位的中断关闭。

cz81 发表于 2023-6-8 14:08:18

乘风飞扬 发表于 2023-6-8 10:55
你的判断方法是通过仿真实现的。
我打开你发的项目看了一下,仿真是设置的还是默认的软件模拟仿真,这跟硬 ...

谢谢大神. 现在可以进入, 按照下面设置p2.1 p2.2低电平中断, 但实际标志位p2INTF乱变, 按道理只有这2个位变啊?
问题: 1.为什么这个中断标志位P2INTF的其他位也变,正常吗?
      2.我设为p2.1 p2.2低电平中断,硬件将p2.1 p2.2上拉,为什么一直进入这个中断呢?
详见视频和代码...

        P2IM0 = 0x00;
        P2IM1 = 0x06; 低电平中断
        P2INTE = 0x06; 仅让p2.1 p2.2中断,p2口其他引脚中断不进函数void common_isr() interrupt 13

乘风飞扬 发表于 2023-6-8 16:33:39

cz81 发表于 2023-6-8 14:08
谢谢大神. 现在可以进入, 按照下面设置p2.1 p2.2低电平中断, 但实际标志位p2INTF乱变, 按道理只有这2个位 ...就算不开启中断,只有满足触发条件,中断标志位也还是会置位的,查询模式就可以不开中断直接判断标志位来确认是否完成触发。
开启低电平中断后,只要中断脚是低电平,就会一直产生中断,直到脚位电平变高并清除中断标志。

cz81 发表于 2023-6-8 16:52:15

乘风飞扬 发表于 2023-6-8 16:33
就算不开启中断,只有满足触发条件,中断标志位也还是会置位的,查询模式就可以不开中断直接判断标志位来确 ...

乘风,您好! 可是47 48脚p2.2 p2.3一直是高电平, 为什么视频中p2intf对应的位值在变?
页: [1]
查看完整版本: stc8h8k64u普通io中断,不能进入void common_isr() interrupt 13