STM8S103之中断优先级设置

2020-09-21来源: eefocus关键字:STM8S103  中断优先级  设置

STM8S的中断由中断控制器(ITC)控制。STM8所有IO都支持中断,分为PA~PE 5个组,每组IO对应一个中断服务函数(也就是每组IO只有一个向量)。STM8没有专门的中断状态寄存器,所以只能通过刚进入中断就读取IDR来判断,不过在某些情况下,此种方法就不好用了,所以在设计的时候就要考虑清楚,是不是会冲突.最好把有冲突的中断放到不同的组。


STM8的外部中断采用软件优先级+硬件优先级的控制方法,来控制优先级分组.软件优先级优先于硬件优先级。硬件优先级由向量号确定,向量号越小,优先级越高如下面图中断映射,中断向量表。

STM8软件优先级设置可以分为4个等级(0~3),实际上可设置的就三个等级:1~3。优先级顺序:0<1<2<3,3的优先级最高,高优先级的中断可以打断低优先级的中断
多个中断同时发生:在软件优先级相同的情况下,由硬件优先级决定谁先响应.但是硬件优先级不可打断。也就是相同软件优先级的中断,硬件优先级低的中断在执行了...此时来一个硬件优先级高的中断是不可以打断低优先级的中断的。STM8还有个TLI外部中断,这个优先级可以打断软件优先级为3的中断,TLI的优先级不可设置.(基本就是最高级别了,除了RESET)。

总结:同时中断看硬件优先级(向量表)
嵌套中断的时候,应该看软件优先级。(3是最高级)

 

注意:

设置优先级之前必须关闭中断,否则会导致hard fault。

  • 疑惑:


  • reference manual中有如下描述,MAIN, IT4, IT3, IT2, IT1, IT0, TRAP/TLI (same priority), and RESET但是不知道IT4等代表什么含义


关键字:STM8S103  中断优先级  设置 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic510952.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:各种版本的ST-LINK仿真器
下一篇:STM8头文件路径的设置

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S103汇编文档和注意
1、官方文档《STM8 CPU programming manual》介绍了指令和寻址方式2、辅助类文档,boot loader文档《STM8 bootloader》3、关于一些实例和伪指令的介绍,网搜《STM8S第1章-第5章》,已下载至本人电脑cpu-stm8s目录下和《asm_lnk_user_manual.pdf》4、关于一些实际应用,网搜《STM8S-汇编》,已下载至本人电脑cpu-stm8s目录下5、详细教科书《STM8S系列单片机原理与应用》6、STVD安装目录下的asm 的文档《asm_lnk_user_manual.pdf》和asmdemo文件夹下的例程  1、EQU和#define的区别
发表于 2020-09-24
STM8S103内存详析
STM8S103的RAM有1k,0x00-0x3FF(RAM和ROM统一编址),其中0x200-0x3ff共512个字节默认为堆栈,剩余的低端512个字节又分为了Zero Page和剩余的RAM(简称RAM),如下图STVD中,定义变量默认是定义在Zero Page中的# .bsct段服务于定义在0页(地址小于0x100)以内需要初始化的全局变量(如@tiny char a = 9;)# .ubsct段服务于定义在0页(地址小于0x100)以内不需要初始化的全局变量(如@tiny char b;)# .bit表示位域段,定义后即可在程序中使用_Bool变量(如_Bool c = 1;),-id表示该段需要初始化。#.share
发表于 2020-09-24
<font color='red'>STM8S103</font>内存详析
STM8S103 STVD编译空间不足
关于text空间(理解为代码空间)不足问题关于.bsct和.ubsct问题(着重参考http://www.waveshare.net/article/STM8-3-1-10.htm)    map文件分析http://home.eeworld.com.cn/home.php?mod=space&uid=348360&do=blog&id=270971map文件中各个段的分析:http://www.51hei.com/bbs/dpj-31009-1.html
发表于 2020-04-05
<font color='red'>STM8S103</font> STVD编译空间不足
STM8S103之时钟设置
最大时钟(指的是system clock):外部晶振24MHz,内部高速RC16MHz三个时钟源:外部晶振、内部高速RC(上电默认) +内部低速RC几个时钟:master clock(即sytem clock),fcpu,外设时钟、AWU时钟调用库函数中CLK_ClockSwitchConfig,参考库函数clk_clockselection,但是分频还得进一步设置上电默认:内部高速RC,HSIDIV=/8,CPUDIV=/1,外部时钟全使能,查看相关寄存器的Reset value
发表于 2020-03-09
<font color='red'>STM8S103</font>之时钟设置
stm8s103单片机输出PWM波程序
;       TIM2_ARRL=0x00;      TIM2_CCER1_CC1P=1;     TIM2_CCER1_CC1E=1;       TIM2_CCMR1_OC1M=0x60;    TIM2_CCMR1_CC1S=0;      TIM2_CCR1H=0x00;     TIM2_CCR1L=0x20;     TIM2_IER
发表于 2020-02-14
ARM Cortex-M4中断优先级和嵌套
坐在上海回北京的高铁上,漫长的旅途着实让人感到无聊(没买到直达的高铁,只能慢悠悠的走一站停一站,晕,都高铁时代了,竟然还这样,想起了大学放假回家站十几个小时绿皮车的时光啊,哈哈),遂有点“写心萌动”,不由感叹——“春”天真是来了,春为啥加引号捏,我相信大家都懂的,哈哈。这样也好,俺又可以慢悠悠的写作抒情了,走着。。。其实都搞了这么长时间的ARM开发,关于其至关重要的中断优先级问题我早就想跟大家伙分享分享了,可惜一方面想真正的讲清楚这个问题估计又得大费周章和墨水,另一方面自己越来越忙进一步导致写文章倒是越来越懒了,呵呵。所以趁着坐高铁无聊赶紧撸胳膊抹袖子整吧,不然把这么重要的内容放在自己脑子里封存落灰实在是颇为浪费呀,哈哈。那就
发表于 2020-08-25
ARM Cortex-M4<font color='red'>中断优先级</font>和嵌套
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved