优特锐孙工 发表于 2025-6-2 16:28:41

8H8K64U系列I/O中断唤醒的问题 | AiCube 支持产生 I/O中断的程序

第一次使用STC芯片调试一个新产品。需要省电。用到了掉电模式。
目前的功能唤醒源有两个检测口。一个是低沿唤醒,一个是高沿唤醒。
下降沿唤醒我选了INT0,上升沿我选的P5.4,I/O中断。


两个中断唤醒后,需要进入中断处理更新几个变量。
调试时发现,唤醒没问题,INT0唤醒后,也能进入中断去处理变量。
但是I/O中断唤醒后,发现跳过了I/O中断,去接着执行睡眠时前的指令去了。。
有没有办法使IO中断后,执行完I/O中断后再返回到主线任务?
多谢大佬们指点

神农鼎 发表于 2025-6-2 19:36:51



深圳国芯人工智能有限公司-工具软件


优特锐孙工 发表于 2025-6-2 16:33:05

中断里这样处理的(将三个变量初始化)。但是目前只能唤醒,没有更新变量

ercircle 发表于 2025-6-2 16:57:55

怎么判断它跳过了中断呢
进中断点个灯或者屏蔽掉所有if条件能更新变量吗
可以把intf输出看看,例程里一般用& 不用==


另外这个P_SW2 |= 0x80;main函数开始前执行下不用关吧

优特锐孙工 发表于 2025-6-2 17:01:35

ercircle 发表于 2025-6-2 16:57
怎么判断它跳过了中断呢
进中断点个灯或者屏蔽掉所有if条件能更新变量吗
可以把intf输出看看,例程里一般用 ...

多谢提醒,我晚一点按你说的试试看。{:baoquan:}

神农鼎 发表于 2025-6-2 19:19:29


进入省电模式的下一句,加 10个 NOP




P5.4默认是复位管脚,要当 P5.4使用,烧录时要设置成 P5.4


要省电模式唤醒,这还要使能










神农鼎 发表于 2025-6-2 19:51:13


优特锐孙工 发表于 2025-6-3 15:28:42

如图是IO配置

神农鼎 发表于 2025-6-3 16:47:58

用 AiCube 尝试产生代码测试下

优特锐孙工 发表于 2025-6-3 18:31:39

多谢大家的指点,找到问题了。是因为我开了定时器0,定时10US中断搞了个软件PWM。。中断唤醒后应该是被定时器0抢先了,我现在睡眠前关定时器中断,唤醒后再打开就可以了。。不关的话一唤醒在执行唤醒后的那几个NOP时估计就被TIMER0抢走了
页: [1]
查看完整版本: 8H8K64U系列I/O中断唤醒的问题 | AiCube 支持产生 I/O中断的程序