历史上的今天
今天是:2025年07月09日(星期三)
2020年07月09日 | STM8 中断和低功耗模式
2020-07-09 来源:eefocus
STM8 中断和低功耗模式
所有的中断都可以使处理器从待机模式(Wait)退出。
仅有外部中断和另外一些特定中断使才能使处理器从停机(Halt)模式退出。
当MCU STM8从挂起模式唤醒时候,如果有多个排队中断存在,那么第一个被响应的中断一定具有从挂起模式退出的能力。该选择是通过如图18所示的判断过程实现的。如果最高优先级的待相应的中断不能把设备从挂起模式唤醒的话,那么它将在后续被响应。
如果在执行HALT指令时,有一个内部或外部中断(例如时钟中断)发生,HALT指令会继续执行完毕,但这个中断会立刻调用唤醒进程。
这种情况下MCU实际上是从停机(Halt)模式被唤醒到运行模式,模式切换的延时为tWUH,详见数据手册。
STM8 活动等级/低功耗模式的控制
MCU的活动等级的配置是通过编程CFG_GCR寄存器的AL位来实现。(见1.3全局配置寄存器(CFG_GCR))。
该位是用来控制MCU的低功耗模式。在超低功耗的应用中,MCU大部分时间是运行在WFI/Halt模式中,仅在为执行特别任务的时候被唤醒(通过中断)。一些重复的任务可以直接在一个ISR(中断服务子程序)执行完成而不需要返回到主程序。为了处理这样情况,用户可以在进入低功耗模式(通过执行WFI/HALT指令)之前置位AL位,之后中断子程序返回之后就直接回到低功耗模式。由于STM8相关寄存器保存只是在第一次中断会进行所以减少了中断服务程序运行的时间。
在一些非常简单的应用中所有的操作都可以只在ISR中执行。对于一些更复杂的任务,中断子程序要判断是否要启动主程序,可以通过重设AL的简单方式来实现。
例如:一个应用需要通过自动唤醒功能来每隔50ms唤醒一次来检测一些引脚/传感器/按键的状态。如果这些引脚大部分时间是不工作的,那么MCU可以直接回到低功耗模式而不需要运行主程序的。如果其中之一的引脚处于工作状态,那么ISR将要进行相应判断,通过重设AL位来启动主程序。

(图18:优先级处理过程)
史海拾趣
|
一、成长--从摇滚青年到设计精英 9月的一天,在一场技术研讨会上,A君一边老到地翻看着Demo板,一边询问着一些技术细节,俨然一个技术高手,可是谁能想到,3年前,他曾是一个痴迷音乐的摇滚青年。 那是2 ...… 查看全部问答> |
|
最近在做电源管理这部分,想修改D:\\WINCE500\\PUBLIC\\COMMON\\OAK\\DRIVERS\\PM\\PDD\\里的default文件。 但想想要是每次调试修改都要sysgen,那不死人啦。有没有大侠知道有没有简单的方法编译下。望指点迷津。… 查看全部问答> |
|
版本是IAR 3.1A 连接时产生的错误 Error[e46]: Undefined external "?cstart_init_zero" referred in fet440_ta02 ( C:\\Documents and Settings\\dlh\\My Documents\\Debug\\Obj\\fet440_ta02.r43 ) 请问这是什么错误啊? 我检查了下,发 ...… 查看全部问答> |




