打印
[技术问答]

如何在省电模式中,唤醒后但不进中断处理?

[复制链接]
1198|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
primojones|  楼主 | 2024-5-28 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在进入省电模式之前,用户可以藉由呼叫下列函数

__disable_irq();

禁用 IRQ 处理,使得系统在唤醒之后,会接续执行进入省电模式的下一笔指令,而不会进入中断处理程序。

除此之外,用戶还需要注意以下几点 :

用户需要 __WFI 函數後面加上函數
      __ISB();
      清除管线预先抓取的指令,使得接续的指令能被正确的抓取并且执行。
写 ”1” 到 NVIC_ICPR 将对应的 IRQ 处理挂起清除。
将中断旗帜清除。

使用特权

评论回复
沙发
liu96jp| | 2024-6-5 13:01 | 只看该作者
那你唤醒的目的是什么

使用特权

评论回复
板凳
lix1yr| | 2024-6-5 14:06 | 只看该作者
唤醒之后关闭中断源?

使用特权

评论回复
地板
g0d5xs| | 2024-6-5 15:10 | 只看该作者
禁用唤醒源中断,在进入省电模式之前,禁用所有可能的唤醒源中断。这样,即使发生唤醒事件,也不会触发中断处理程序

使用特权

评论回复
5
zhizia4f| | 2024-6-5 16:15 | 只看该作者
使用轮询方式检测唤醒事件,在唤醒后,使用轮询方式检测唤醒事件,而不是通过中断来处理。可以通过查询相关寄存器或标志位的状态来判断是否发生了唤醒事件,并根据需要执行相应的操作

使用特权

评论回复
6
w2nme1ai7| | 2024-6-5 17:23 | 只看该作者
使用低功耗定时器(Low Power Timer),一些芯片提供了低功耗定时器,可以在省电模式下运行,定时唤醒芯片。通过配置低功耗定时器,可以在指定的时间间隔后唤醒芯片,而不需要中断处理

使用特权

评论回复
7
su1yirg| | 2024-6-5 19:00 | 只看该作者
需要注意的是,具体的实现方法和可行性取决于芯片型号和所使用的开发环境

使用特权

评论回复
8
q1ngt12| | 2024-6-6 07:14 | 只看该作者
在使用时,建议参考芯片的技术文档、开发工具的文档或厂商提供的相关资料,以了解具体的省电模式和唤醒机制,并选择合适的方法来实现不进入中断处理的唤醒操作

使用特权

评论回复
9
tax2r6c| | 2024-6-6 08:34 | 只看该作者
一般都是直接关闭中断就不进入到中断处理了

使用特权

评论回复
10
lamanius| | 2024-6-6 10:21 | 只看该作者
你为啥要不进中断呢?那不用中断多好

使用特权

评论回复
11
ex7s4| | 2024-6-6 12:00 | 只看该作者
关闭中断,有这个函数的,你可以试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

1146

帖子

0

粉丝