找回密码
 立即注册
查看: 67|回复: 8

对于AI8H1K08的掉电模式疑问

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-11-02 08:20:28
已绑定手机

21

主题

68

回帖

218

积分

中级会员

积分
218
发表于 3 天前 | 显示全部楼层 |阅读模式
  1. // 头文件
  2. #include "STC8Hxxx.h"
  3. // 引脚定义
  4. // 宏定义
  5. // 声明
  6. // 数组
  7. // 函数
  8. // 变量
  9. // 主函数
  10. void main(void)
  11. {
  12.     P_SW2 |= 0x80;                      // 允许XFR访问
  13.     // 引脚初始化
  14.     P3M0 = 0x00; P3M1 = 0xff;       // P30~37 高阻输入
  15.     P3IE = 0x00;                    // 关闭数字输入
  16.     P5M0 &= ~0x10; P5M1 |= 0x10;    // P54 高阻输入
  17.     P5IE &= ~0x10;                  // 关闭数字输入
  18.     P1M0 = (P1M0 & ~0xc0) | 0x03; P1M1 = (P1M1 & ~0x03) | 0xc0;     // P10 11 推挽输出 P16 17 高阻输入
  19.     P1IE &= ~0xc0;                  // 关闭数字输入
  20.     IT0 = 0;                                    //使能INT0上升沿和下降沿中断
  21.     EX0 = 1;                                    //使能INT0中断
  22.     EA = 1;
  23.     PCON = 0x02;                                //MCU进入掉电模式
  24.     _nop_();                                    //掉电模式被唤醒后,MCU首先会执行此语句
  25.                                                 //然后再进入中断服务程序
  26.     _nop_();
  27.     _nop_();
  28.     _nop_();
  29.     while(1)
  30.     {
  31.         P11 = ~P11;             // 正常工作
  32.     }
  33. }
  34. // 中断服务函数
  35. void INT0_Isr() interrupt 0
  36. {
  37.     P10 = !P10;                                 //测试端口
  38. }
复制代码
我根据案例和省电模式的帖子 写了这个程序

有几个疑问,我没有看到在哪里有写

1. 当执行到MCU进入掉电模式语句的时候晶振停止 是不是就会卡在这个位置  然后等外部中断翻转电平唤醒以后 执行完nop开始进入循环体正常工作
2. 那我是不是可以把这个封装成一个模式 当设备空闲30s以后 调用这个模式 然后重置设备状态mode = 0   当我用外部中断唤醒的时候再mode = 1 开始待机 可以这样子做吗?  
3. nop在程序中是必要的吗?


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:601
  • 最近打卡:2025-11-01 09:21:02
已绑定手机

87

主题

6411

回帖

1万

积分

超级版主

积分
12082
发表于 3 天前 | 显示全部楼层
执行PCON = 0x02时进入PD状态
唤醒后程序继续运行
建议PD模式前后各加4个nop
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-11-02 08:20:28
已绑定手机

21

主题

68

回帖

218

积分

中级会员

积分
218
发表于 3 天前 | 显示全部楼层
Debu*** 发表于 2025-10-30 11:41
执行PCON = 0x02时进入PD状态
唤醒后程序继续运行
建议PD模式前后各加4个nop

IRCDB = 0x10;
这句需要在初始化的时候加吗?
规格书上我看有写

但是案例上是没有的
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:601
  • 最近打卡:2025-11-01 09:21:02
已绑定手机

87

主题

6411

回帖

1万

积分

超级版主

积分
12082
发表于 3 天前 | 显示全部楼层
HyunYon*** 发表于 2025-10-30 11:46
IRCDB = 0x10;
这句需要在初始化的时候加吗?
规格书上我看有写

建议加,提高稳定性,还有IAP_TPS也要正确设置
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-11-02 08:20:28
已绑定手机

21

主题

68

回帖

218

积分

中级会员

积分
218
发表于 3 天前 | 显示全部楼层
是这个IAPTPS吗?
刚刚试了以下没加初始化那个 已经可以正常进入掉电模式和外部中断唤醒了
我现在把这个加进去
截图202510301201257912.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-11-02 08:20:28
已绑定手机

21

主题

68

回帖

218

积分

中级会员

积分
218
发表于 3 天前 | 显示全部楼层
Debu*** 发表于 2025-10-30 11:52
建议加,提高稳定性,还有IAP_TPS也要正确设置

这个是和前面提高稳定性那个初始化一起设置的吗?

点评

是  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:601
  • 最近打卡:2025-11-01 09:21:02
已绑定手机

87

主题

6411

回帖

1万

积分

超级版主

积分
12082
发表于 3 天前 | 显示全部楼层
HyunYon*** 发表于 2025-10-30 12:02
这个是和前面提高稳定性那个初始化一起设置的吗?

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-11-02 08:20:28
已绑定手机

21

主题

68

回帖

218

积分

中级会员

积分
218
发表于 3 天前 | 显示全部楼层

触摸按键唤醒的话
是不是和外部中断一样

检测到触摸/中断就唤醒 具体触摸后执行什么功能 中断执行什么功能是不会干扰到的

触摸唤醒的话,例如我按着触摸按键上电会打乱触摸值吗? 是否有必须是在设备上电前触摸按键是不能按着的

点评

不一样,外部中断是中断唤醒,触摸按键是周期唤醒 唤醒后和中断的功能是否会有影响,取决于是否会进入中断 是否可以按着触摸按键上电,取决于用户程序,如有上电时读取触摸按键作为零点初始值,就会影响 [attachimg  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:601
  • 最近打卡:2025-11-01 09:21:02
已绑定手机

87

主题

6411

回帖

1万

积分

超级版主

积分
12082
发表于 3 天前 | 显示全部楼层
HyunYon*** 发表于 2025-10-30 16:22
触摸按键唤醒的话
是不是和外部中断一样


不一样,外部中断是中断唤醒,触摸按键是周期唤醒
唤醒后和中断的功能是否会有影响,取决于是否会进入中断
是否可以按着触摸按键上电,取决于用户程序,如有上电时读取触摸按键作为零点初始值,就会影响
截图202510302051153257.jpg

截图202510302053102859.jpg

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-11-2 19:55 , Processed in 0.125660 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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