找回密码
 立即注册
查看: 139|回复: 9

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

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:19:35
已绑定手机

1

主题

8

回帖

67

积分

注册会员

积分
67
发表于 2025-6-2 16:28:41 | 显示全部楼层 |阅读模式
第一次使用STC芯片调试一个新产品。需要省电。用到了掉电模式。
目前的功能唤醒源有两个检测口。一个是低沿唤醒,一个是高沿唤醒。
下降沿唤醒我选了INT0,上升沿我选的P5.4,I/O中断。


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

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16651
发表于 2025-6-2 19:36:51 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:19:35
已绑定手机

1

主题

8

回帖

67

积分

注册会员

积分
67
发表于 2025-6-2 16:33:05 | 显示全部楼层
中断里这样处理的(将三个变量初始化)。但是目前只能唤醒,没有更新变量
截图202506021631539739.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1920

回帖

4311

积分

荣誉版主

无情的代码机器

积分
4311
发表于 2025-6-2 16:57:55 | 显示全部楼层
怎么判断它跳过了中断呢
进中断点个灯或者屏蔽掉所有if条件能更新变量吗
可以把intf输出看看,例程里一般用& 不用==

截图202506021654223635.jpg
另外这个P_SW2 |= 0x80;main函数开始前执行下不用关吧
截图202506021657246472.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:19:35
已绑定手机

1

主题

8

回帖

67

积分

注册会员

积分
67
发表于 2025-6-2 17:01:35 | 显示全部楼层
erci*** 发表于 2025-6-2 16:57
怎么判断它跳过了中断呢
进中断点个灯或者屏蔽掉所有if条件能更新变量吗
可以把intf输出看看,例程里一般用 ...

多谢提醒,我晚一点按你说的试试看。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16651
发表于 2025-6-2 19:19:29 | 显示全部楼层
截图202506021917561565.jpg
进入省电模式的下一句,加 10个 NOP
截图202506021922047128.jpg

截图202506021922332219.jpg

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


要省电模式唤醒,这还要使能
截图202506021925106349.jpg

截图202506021927252080.jpg







回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16651
发表于 2025-6-2 19:51:13 | 显示全部楼层
截图202506021951092942.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:19:35
已绑定手机

1

主题

8

回帖

67

积分

注册会员

积分
67
发表于 2025-6-3 15:28:42 | 显示全部楼层
如图是IO配置
截图202506031528209203.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16651
发表于 2025-6-3 16:47:58 | 显示全部楼层
用 AiCube 尝试产生代码测试下
截图202506031648122658.jpg
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:19:35
已绑定手机

1

主题

8

回帖

67

积分

注册会员

积分
67
发表于 2025-6-3 18:31:39 | 显示全部楼层
多谢大家的指点,找到问题了。是因为我开了定时器0,定时10US中断搞了个软件PWM。。中断唤醒后应该是被定时器0抢先了,我现在睡眠前关定时器中断,唤醒后再打开就可以了。。不关的话一唤醒在执行唤醒后的那几个NOP时估计就被TIMER0抢走了
截图202506031831334645.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 02:42 , Processed in 0.150969 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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