找回密码
 立即注册
查看: 8934|回复: 46

STC的掉电唤醒定时器设计很独特

[复制链接]

4

主题

0

回帖

42

积分

新手上路

积分
42
发表于 2022-11-28 16:25:13 | 显示全部楼层 |阅读模式
STC的掉电唤醒定时器设计很独特:
不用进入中断程序,就可以掉电唤醒了。
特别适合用于低功耗电路。
如果对时间要求不高,可以直接作为时基信号。
最长定时达15.89S,无需再设,直接进入循环状态。
像STC15F104W居然也具备这个功能。
使用超简单。
1.117.jpg

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-6-13 18:34:32 | 显示全部楼层
截图202406131833586270.jpg

截图202406131834304161.jpg

截图202406131836338472.jpg



回复 支持 反对

使用道具 举报 送花

0

主题

2

回帖

8

积分

新手上路

积分
8
发表于 2023-1-5 09:51:48 | 显示全部楼层
问题是这个16秒太短了,想搞个半小时怎么办呢?
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-1-5 10:19:26 | 显示全部楼层
那就唤醒后计数,未到时间立即再进低功耗,
或者用有 RTC 的 STC8H8K64U 系列
截图202406131830097197.jpg

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-1-5 10:21:30 | 显示全部楼层
截图202406131831472822.jpg


截图202406131832138584.jpg


0

主题

2

回帖

8

积分

新手上路

积分
8
发表于 2023-1-5 10:43:16 | 显示全部楼层
神*** 发表于 2023-1-5 10:19
那就唤醒后计数,未到时间立即再进低功耗,或者用有 RTC 的 STC8H8K64U系列

...

我觉得您说的唤醒后立即又进入掉电,循环若干次,这样可行。
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-1-5 10:51:20 | 显示全部楼层
基本都是这样,平均电流也就增加个 0.1uA 附近

6

主题

26

回帖

137

积分

注册会员

积分
137
发表于 2023-2-14 16:10:06 | 显示全部楼层
本帖最后由 wsr2580 于 2023-2-14 16:26 编辑

大家好,我也在搜索这个信息,但是我没有实现这个需求。

我的产品用的单片机是STC8G1k08,因为我有多个唤醒源唤醒这个单片机,每个唤醒源都执行不同的行为。因为我所用的其他唤醒源都可以进入中断改变状态,而这个不行。

我现在的问题是,如何知道确实是掉电唤醒定时器进行的唤醒,在文档中提到:
掉电唤醒之后,可以通过读 WKTCH 和 WKTCL 中的内容获取单片机在掉电模式中的睡眠时间。
但是,我该怎么读取这个值呢?
  1.         c = 0xaa;
  2.         printf("------%c %c------\n", WKTCH, *c);
  3.         c = 0xab;
  4.         printf("------%c %c------\n", WKTCL, *c);
复制代码

我用上面的代码发现串口打印的数据是:
2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A 2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A 2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A 2D 2D 2D 2D 2D 2D FF 20 00 2D 2D 2D 2D 2D 2D 0A

WKTCH值为FF,0xaa的值为00;请问我该如何判断?

附件是我最小项目,谢谢!

test.zip

70.37 KB, 下载次数: 176

6

主题

26

回帖

137

积分

注册会员

积分
137
发表于 2023-2-15 13:03:37 | 显示全部楼层

请问能否看看这个帖子我的问题。谢谢
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-2-15 16:11:12 | 显示全部楼层
WKTCH 和 WKTCL 是特殊功能寄存器,直接读取即可。
比如:i=WKTCH;j = WKTCL;

6

主题

26

回帖

137

积分

注册会员

积分
137
发表于 2023-2-16 09:19:17 | 显示全部楼层
梁*** 发表于 2023-2-15 16:11
WKTCH 和 WKTCL 是特殊功能寄存器,直接读取即可。
比如:i=WKTCH;j = WKTCL;

我试试,你的意思是我创建两个变量:
u8 i,j;
然后进行这个赋值,然后我和我设置的初始原址进行比较,如果小于,则代表是由其他进行的唤醒,如果等于代表是由这个掉电唤醒定时器进行的唤醒。
1. 是这样的意思吗?
2. 有没有专门的寄存器告诉我触发唤醒源是哪个呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-2 02:40 , Processed in 0.127904 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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