STM8L之外部中断
1、中断优先级
软件中断优先级设置函数
void ITC_SetSoftwarePriority(IRQn_TypeDef IRQn, ITC_PriorityLevel_TypeDef ITC_PriorityLevel)
vector:中断向量号
prio:优先级(1~3),禁止设置为0
STM8的优先级分为软件优先级和硬件优先级,软件优先级高于于硬件优先级.
硬件优先级由向量号确定,向量号越小,优先级越高。
软件优先级可以通过本函数设置。
STM8软件优先级设置可以分为4个等级(0~3),实际上可设置的就三个等级:1~3
优先级顺序:0<1<2<3,3的优先级最高,高优先级的中断可以打断低优先级的中断
多个中断同时发生:在软件优先级相同的情况下,由硬件优先级决定谁先响应。
中断向量表:
关键字:STM8L 外部中断
引用地址:
STM8L之外部中断
推荐阅读最新更新时间:2024-03-16 16:18
CC2530外部中断控制LED灯开关
实验要求 代码实现 #include ioCC2530.h #define D3 P1_0 #define D4 P1_1 #define D5 P1_3 #define D6 P1_4 //延迟函数 void Delay(unsigned int t) { while(t--); } //端口初始化函数 void Init_Prot() { //配置4个LED灯的引擎 //选择端口的功能 P1SEL &=~0x1B;//设置通用io端口 //配置端口的方向 P1DIR |=0x1B; //关闭LED灯 P1 &=~0x1B; } //外部中断端口1的初始化 void Init_INTP1() {
[单片机]
STM32外部中断详解
一、基本概念 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字至少构成17个32位的优先级寄存器。 4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,4bit一共可以分成5组 第0组:所有4bit用于指定响应优先级; 第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级; 第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级; 第3组
[单片机]
STM8S外部中断注意
因为没有中断的清除标志位,这一点与其它单片机是不同的。 EXTI_CR1 触发边沿的设置 要在总中断没开时才能写入! PD7 是 不可屏蔽的最高优先级的硬件中断 (TLI) 设置顺序:最好先关中断 设置边沿 开启引脚 最后开总中断 DisableAllIntp(); EXTI_CR1 = ****(PD口双沿中断); Init_Exti_PD_Intp(); EnableAllIntp(); 另外定时器读取与51有异,顺序要先读TIM1- CNTRH 再读TIM1- CNTRL 要是反过来读 就会得不到正确的值 写CNTR寄存器时,要先关闭(disable)定时器,否则有可能无法正常写入的值
[单片机]
8051外部中断0解析
程序实现功能: 在实验板上左下方有一个黑色的独立按键(K3), 当我们按下它时, D1(LED灯)的状态就会取反. 思路分析: 我们令IT0 = 1, 即选择了 边沿触发 , 所以每当独立按键按下时, 中断处理函数EX_INT0()就会执行. 当进入中断处理函数执行时, 若P32引脚的电平为低电平, 则说明K3按键已按下; 若P32引脚的电平为高电平, 说明K3按键已抬起. 低电平触发 和 边沿触发 的区别: ① 低电平触发 是指在电平处于低电平态的时间内触发. ② 边沿触发 是指在电平由高 - 低或由低 - 高的一瞬间触发. 独立按键电路原理图: 抖动的处理: 为什么我们要在中断处理函数
[单片机]
PIC单片机(PIC16F877A)外部中断程序
正常运行为流水灯,发生中断则灯全亮。 #include pic.h __CONFIG(0x3B31); //4M #define uchar unsigned char #define uint unsigned int #define DELAY 500 uint j=50000; void delay(uint x) //1ms { uint y,z; for(y=x;y 0;y--) for(z=25;z 0;z--); } void init(void) { TRISB0=0; RB0=1; //为下降沿创造高电平的初始条件 TRISB0=1; //输入
[单片机]
STM8L探索套件学习笔记-EEPROM(十一)
上节将到官方例程使用EEPROM存储外围电路消耗的电流值,今天我们对STM8L的EEPROM介绍下。STM8L带有的32K的FLASH和1K的EEPROM都可以编程和擦除,编程模式有1、字节byte,2、字word,3、BLOCK和4、编程和擦写完中断。 由于默认是锁定的,所以对FLASH和EEPROM编程首先要解锁,解锁的方式是写如寄存器特定值,0X56 0XAE。在IAR编译器当中,__eeprom 用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放。@用于变量的绝对地址定位。也可以用#pragma location 命令。 EEPROM 区域数据存储: 用关键字 __eeprom 控制来存放, __eeprom
[单片机]
STM32F103ZET6 — EXTI
STM32F103ZET6 支持 20 个外部中断输入(EXIT0~EXIT19),其中有4个: EXTI线16连接到PVD输出 EXTI线17连接到RTC闹钟事件 EXTI线18连接到USB唤醒事件 EXTI线19连接到以太网唤醒事件(只适用于互联型产品) 另外的16个均可以作为外部输入中断,其中: EXIT0~EXIT4 有独立的中断向量 EXIT6~EXIT9 共享一个中断向量 EXTI9_5_IRQHandler EXIT10~EXIT16 共享一个中断向量 EXTI15_10_IRQHandler 共享的中断向量需要在对应的 ISR 中通过读取 Pending 的标志位来判断到底
[单片机]
51单片机3个外部中断源中断响应编程举例
某系统有3个外部 中断 源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。 答:若仅在/INT0引脚接3个外部中断源 ORG 0000H LJMP MAIN ORG 0003H LJMP INT_EX0 ORG 0030H MAIN: CLR IT0 ; 采用低电平有效中断
[单片机]