单片机学习(一) 中断、定时器、优先级的一些理解

以下仅仅为比较常见的场景下的理解,不完整,参考需谨慎。

1、main文件中,while循环中写明了按顺序执行的语句。期间会执行许多中断服务(最常用的定时器功能也是中断)。

2、从信号角度来说,比如超声波模块有高低电平之分,所以存在上升或下降的过程。中断可以捕获上升或下降的信号,捕获到之后,执行中断函数。

3、外部中断:有外部的传感器模块的信号进来;

内部中断:内部配置定时器。

4、优先级分为抢占优先级和响应优先级。

比如抢占优先级  0  1  2  3

响应优先级  0  1  2  3

同时存在中断A、B:

如果A先执行,B再执行,抢占优先级A<B,则先执行A,执行完A后再继续执行B;

如果A先执行,B再执行,抢占优先级A=B,则先执行A,执行完A后再继续执行B;

如果A、B同时执行,抢占优先级大的先执行;

如果A、B同时执行,抢占优先级相同,则判断响应优先级,响应优先级大的先执行。

原文地址:https://www.cnblogs.com/JuiceCat/p/12043508.html

时间: 2024-10-18 10:47:41

单片机学习(一) 中断、定时器、优先级的一些理解的相关文章

奶爸业余单片机学习之:定时器使用方法——非中断,TF值软件重置法

============定时器使用方法——非中断,TF值软件重置法======== 第一:设置特殊功能寄存器TMOD,配置好工作模式. 第二:设置计数寄存器TH0和TL0的初值. 第三:设置TCON,通过TR0置1来让定时器开始计数. 第四:判断TCON寄存器的TF0位,监测定时器溢出情况.  实例: //LED由三极管及73HC138控制//用定时器0实现亮与灭之间的1秒时 # include <reg52.h> sbit led2 = P0^0; sbit addr0 = P1^0;sbi

奶爸业余单片机学习之:定时器中断的使用方法——进入中断TF0(TF1)值硬件自动重置

/*============定时器中断的使用方法—---TF0(TF1)值硬件重置法======== 第一:打开总中断第二:打开定时器 中断第三:设置特殊功能寄存器TMOD,配置好工作模式. 第四:设置计数寄存器TH0和TL0的初值. 第五:设置TCON,通过TR0置1来让定时器开始计数.*/ //LED由三极管及73HC138控制//用定时器0实现亮与灭之间的1秒延时 # include <reg52.h> sbit led2 = P0^0; sbit addr0 = P1^0;sbit a

[51单片机学习笔记TWO]----蜂鸣器

蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来驱动振动膜发声的.因此需要一定的电流才能驱动它,而单片机I/O引脚输出的电压较小.单片机输出的TTLK电平基本驱动不了蜂鸣器,因需要增加一个放大电路.这里用三极管作为放大电路.下面是原理图: 我这里的J8端是跟芯片的P1^5端口相连,当P1^5输出高电平时,三极管截止,蜂鸣器不发声,反之,输出低电平

linux内核学习:中断中推后执行的部分

软中断-softirq 特点 相同和不同的软中断都可以在不同处理器上同时执行 一个软中断不会抢占另一个软中断 何时执行 从中断程序返回时 ksoftirqd线程中 显示调用 软中断最多有32个,一个32位的整型数据可以被用来标记刮起的软中断 使用策略 软中断应用于确实需要的场合,目前只有网络驱动和SCSI驱动中使用.另外,内核定时器和tasklet建立在软中断之上. 使用方法 注册软中断 void open_softirq(int nr, void (*action)(struct softir

[51单片机学习笔记ONE]-----LED灯的多种使用方法

一.交替闪烁8个LED灯,时间间隔为1s 1 /****************************************************** 2 实验名称: 交替闪烁8个LED灯,时间间隔1s 3 实验时间: 2014年12月2日 4 ******************************************************/ 5 6 #include <reg51.h> 7 8 void delay(unsigned char a); 9 10 void m

义隆单片机学习笔记之(三) 应用例程

常用寄存器: 0x01 (R1) 计时器 0x02 (R2)程序计数器 PC 0x03 (R3)状态寄存器 0x04 (R4)间址寄存器 0x05 (R5)IO PORT 5 0x06 (R6)IO PORT 6 ----- (IOC5)P5的输入输出配置 ----- (IOC6)P6的输入输出配置 0x0f (ISR,读)中断信号指示寄存器(第三位有效,分别对应于3个中断源) 0x0f (IOCF,写)中断屏蔽标志 0x0E (IOCE)(IO60作为中断输入的配置与看门狗的开关在一个寄存器中

linux内核学习:中断

编程相关 注册中断 int request_irq( unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev) typedef irqreturn_t (*irq_handler_t)(int, void *); IRQF_DISABLED 会禁用除本本身以外的其它中断,一般是不用的 IRQF_SAMPLE_RANDOM 可以帮助内核随机数的产生.如果中断产生地毫无规律,可

5年单片机学习总结-ED China【转】

人的一生是一个不断学习不断成长的过程转眼间,研究生的学习生涯结束了,走上新的工作岗位回头看看,发现自己不知不觉已经走过了五年的单片机学习之旅 在2003年最初接触单片机的时候,在我心中觉得51就是单片机,单片机就是51,根本不知道还有其他单片机的存在那时候老师只教会了我们汇编语言,根本不知道用C语言也可以进行单片机开发幸运的是,我加入了单片机兴趣小组,在老师的指导下,做了一系列实验,有基于DS18B20的温度采集系统有基于164的移位寄存器的灯光控制系统有步进电机和直流电机的控制系统这时候我才发

STM32单片机学习(11) DS18B20温度传感器实验

STM32单片机学习(11) DS18B20温度传感器实验 本程序主要实现 DS18B20温度传感器数据获取,并利用串口通信把温度数据传至计算机 注:使用普中科技开发板测试时,需要拔掉Boot1插口,因为用到的是PA15管脚, 由开发板电路图可知,需要改变PA15 管脚的映射,将其设置成普通IO口 参考资料 DS18B20中文手册.pdf   http://download.csdn.net/detail/leytton/7742193 STM32-外设篇 视频教程(Cortex-M3)-主讲人

义隆单片机学习笔记之(四) 编程及烧录

工具说明: 1.UIDE,编程环境 2.UWriter:烧录软件 下载地址: (见官网) 一 UIDE  1.1 创建工程: 1.2 选择型号: 1.3 编程及编译 二 UWriter 2.1 安装 (Serial number在购买烧录器的时候,从代理经销商处获得!) 2.2 选择目标芯片  2.3 配置选择 (注:由于是OTP,很多功能都是在配置的时候指定,所以这里非常重要.晶振.时钟的选择,延时程序要与之对应: 是否需要保护等,根据自己的需要而定) 编译之后生成的.map文件,详细的描述了