匿名
未登录
登录
丢石头百科
搜索
STM8 同时的和嵌套的中断管理
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
Admin
(
讨论
|
贡献
)
2019年11月18日 (一) 16:33的版本
(STM8S提供2种中断管理模式:同时发生模式嵌套模式STM8同时发生中断管理模式在该模式下,所有的中断的中断优先级都是3级,因此它们都是不可以被中断的(除了被TLI,RESET或TRAP中断之外)。硬件的中断优先级按如下顺序 ...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
<tbody></tbody>
STM8S提供2种中断管理模式:
同时发生模式
嵌套模式
STM8同时发生中断管理模式 在该模式下,所有的中断的中断优先级都是3级,因此它们都是不可以被中断的(除了被TLI,RESET或TRAP中断之外)。 硬件的中断优先级按如下顺序排列,从低到高的优先级是:MAIN,IT4,IT3,IT2,IT1,IT0,TRAP/TLI(同等优先级)以及RESET。 图19所示是一个同时发生中断管理模式的例子。
(图18:同时发生中断管理模式) STM8嵌套中断管理模式 在该模式下,允许在中断子程序中响应中断。一旦一个中断的优先级被设置低于3级时该模式就立即有效。 硬件优先级从低到高按如下顺序给定,即MAIN,IT4,IT3,IT2,IT1,IT0和TRAP。 通过设定ITC_SPRx寄存器的相应的I1_x和I0_x位来配置每一个中断向量的软件优先级。I1_x和I0_x位具有和CC寄存器的I1和I0位相同的意思(见表14)。 不可以将中断优先级设为级别0(I1_x=1,I0_x=0),在这种情况下,该中断的优先级将保持为先前的值。例如:如果先前的值是CFh,然后编程的值是64h,那么结果是44h。 RESET和TRAP向量是没有软件优先级的。当两者的任何一个被响应时,CC寄存器的位I1和I0两位都被置位。 注意:在STM8中断被响应时如果位I1和I0被修改,那么设备将作如下处理:如果一个中断X仍然处在悬起状态(新的中断或者中断标志没有被清除)同时该新的优先级又比先前的优先级高的话,那么该中断X会被重新响应。否则该中断的软件优先级在下一个中断请求(X中断的IRET之后)来之前保持不变。 在中断子程序的执行过程中,执行HALT,POP CC,RIM,SIM和WFI指令会改变当前的软件优先级直到下一条IRET指令被执行或者先前提到的指令之一被执行。图20所示嵌套中断管理的例子。
警告:没有标志位及中断来指示堆栈发生溢出
<tbody></tbody>
向量地址
ITC_SPRx寄存器位
8008h
I1_0 and I0_0 bits(1)
800Ch
I1_1 and I0_1 bits
…
…
80C7h
I1_29 and I0_29 bits
(表14向量地址映象对应软件的优先级位) 1.ITC_SPRx寄存器对应于TLI的位可以被读写,但是它们对中断处理的管理是没有作用的。
(图20:嵌套中断管理)
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
可打印版本
固定链接
页面信息
页面日志