sigerio 发表于 2022-10-19 19:35:44

休眠后系统时钟切换

写的代码太冗余了,导致定时器和代码配合不是很好,想把系统主频调快一点,目前默认的是8M,代码1s从休眠中唤醒一次,如果初始化为16M,那么休眠后还是直接调用初始化的函数吗?
我看了下论坛里的一些帖子,然后对照复旦微的参考历程,还是没弄清楚改怎么配置,还有人说什么调教值,有没有什么明路让我参考下

顾博文 发表于 2022-10-24 09:25:41

1、休眠 指 单片机暂停了,不执行程序。所以定时器中断设置要在休眠前完成,等时间到了,定时器中断唤醒单片机,让单片机工作0
2、代码太冗余,那就优化下代码。也可以利用编译器c代码优化。开的优化等级越高,代码越小,不过调试的时候可能会感觉程序会跳,应为编译器会把相同代码合并导致。
3、把主频改成16m,一般是这么做的,上电后延时几百ms ,更改主频8m到16m,修改 WKFSELbit位使单片机休眠后自动切16M(手册PMU章节里的寄存器)。这样就可以了

sigerio 发表于 2022-10-25 10:37:44

顾博文 发表于 2022-10-24 09:25
1、休眠 指 单片机暂停了,不执行程序。所以定时器中断设置要在休眠前完成,等时间到了,定时器中断唤醒单 ...

也就是说在初始化的时候配置为16M之后,那么单片机从休眠中唤醒就默认采用16M的主频,是这个意思吗

顾博文 发表于 2022-10-31 08:39:38

sigerio 发表于 2022-10-25 10:37
也就是说在初始化的时候配置为16M之后,那么单片机从休眠中唤醒就默认采用16M的主频,是这个意思吗 ...

WKFSELbit 要设置才能生效, 而且主频是rchf的情况下
页: [1]
查看完整版本: 休眠后系统时钟切换