外部中断函数

合集下载

Arduino的外部中断

Arduino的外部中断

Arduino的外部中断Arduino的中断函数格式为attachInterrupt(interrput,function,mode)。

attachInterrupt函数⽤于设置外部中断,有3个参数,interrput表⽰中断源编号(中断号)、function表⽰中断处理函数,mode表⽰触发模式,它们的具体含义如下中断号:可选0或者1,在UNO板上分别对应2和3号数字引脚。

在不同的Arduino型号上位置也不同,只有外部中断发⽣在以下端⼝,Arduino才能捕获到。

以下是常见的⼏种型号板⼦的外部中断编号和对应引脚标号。

中断源编号int.0int.1int.2int.3int.4int.5UNO\Ethernet23 Mega25602321201918Leonardo3201 Due 所有IO⼝均可Due板的每个IO均可以进⾏外部中断,中断号即所使⽤的中断引脚编号。

中断处理函数:指定中断的处理函数,是⼀段⼦程序,当中断发⽣时执⾏该⼦程序,其中参数值为函数的指针。

触发模式:有下列⼏种类型LOW 低电平触发CHANGE 电平变化,⾼电平变低电平、低电平变⾼电平RISING 上升沿触发FALLING 下降沿触发HIGH ⾼电平触发(该中断模式仅适⽤于Arduino due)如果不需要使⽤外部中断了,可以⽤中断分离函数detachInterrupt(interrupt )来取消这⼀中断设置。

Example Code ⽤外部中断实现LED的亮灭切换1const byte ledPin = 13; //LED的引脚2const byte interruptPin = 2; //中断源引脚,根据所⽤板⼦查表得到中断编号interrupt3volatile byte state = LOW;45void setup()6 {7 pinMode(ledPin, OUTPUT);8 pinMode(interruptPin, INPUT_PULLUP);9 attachInterrupt(interrupt, blink, CHANGE);10 }1112void loop()13 {14 digitalWrite(ledPin, state);15 }1617void blink()18 {19 state = !state;20 }。

CC2530外部中断

CC2530外部中断

CC2530外部中断⼀、中断基础概念内核与外设之间的主要交互⽅式有两种:轮询和中断。

中断系统使得内核具备了应对突发事件的能⼒。

在执⾏CPU当前程序时,由于系统中出现了某种急需处理的情况,CPU暂停正在执⾏的程序,转⽽去执⾏另外⼀段特殊程序来处理出现的紧急事务,处理结束后,CPU⾃动返回到原来暂停的程序中去继续执⾏。

这种程序在执⾏过程中由于外界的原因⽽被中间打断的情况,称为中断。

采⽤中断技术后,可以为计算机系统带来以下好处:1)实现分时操作速度较快的CPU和速度较慢的外设可以各做各的事情,外设可以在完成⼯作后再与CPU进⾏交互,⽽不需要CPU去等待外设完成⼯作,能够有效提⾼CPU的⼯作效率。

2)实现实时处理在控制过程中,CPU能够根据当时情况及时做出反应,实现实时控制的要求。

3)实现异常处理系统在运⾏过程中往往会出现⼀些异常情况,中断系统能够保证CPU及时知道出现的异常,以便CPU去解决这些异常,避免整个系统出现⼤的问题。

两个重要的概念:<1> 中断服务函数:内核响应中断后执⾏的相应处理程序。

例如ADC转换完成中断被响应后,CPU执⾏相应的中断服务函数,该函数实现的功能⼀般是从ADC结果寄存器中取⾛并使⽤转换好的数据。

<2> 中断向量:中断服务程序的⼊⼝地址,当CPU响应中断请求时,会跳转到该地址去执⾏代码。

⼆、 CC2530中断CC2530具有18个中断源,每个中断源都有它⾃⼰的位于⼀系列SFR 寄存器中的中断请求标志。

相应标志位请求的每个中断可以分别使能或禁⽤。

Tip:(1)当调⽤中断服务例程时清除硬件。

(2)另外的 IRQ 掩码和 IRQ 标志位存在。

三、CC2530中断处理函数格式书写中断服务函数与⼀般⾃定义函数不同,有特定的书写格式:#pragma vector = 中断向量__interrupt void 函数名称(void){/*此处编写中断处理函数的具体程序*/PxIFG = 0; //先清除Px引脚的中断状态标志位PxIF = 0; //再清除Px端⼝组的中断状态标志位}<1> 在每⼀个中断服务函数之前,都要加上⼀句起始语句:#pragma vector = <中断向量><中断向量>表⽰接下来要写的中断服务函数是为那个中断源服务的,该语句有两种写法:#pragma vector = 0x7B或者#pragma vector = P1INT_VECTOR前者是中断向量的⼊⼝地址,后者是头⽂件“ioCC2530.h”中的宏定义。

单片机外部中断详解及程序

单片机外部中断详解及程序

单片机外部中断详解及程序单片机在自主运行的时候一般是在执行一个死循环程序,在没有外界干扰(输入信号)的时候它基本处于一个封闭状态。

比如一个电子时钟,它会按时、分、秒的规律来自主运行并通过输出设备(如液晶显示屏)把时间显示出来。

在不需要对它进行调校的时候它不需要外部干预,自主封闭地运行。

如果这个时钟足够准确而又不掉电的话,它可能一直处于这种封闭运行状态。

但事情往往不会如此简单,在时钟刚刚上电、或时钟需要重新校准、甚至时钟被带到了不同的时区的时候,就需要重新调校时钟,这时就要求时钟就必须具有调校功能。

因此单片机系统往往又不会是一个单纯的封闭系统,它有些时候恰恰需要外部的干预,这也就是外部中断产生的根本原由。

实际上在第二个示例演示中,就已经举过有按键输入的例子了,只不过当时使用的方法并不是外部中断,而是用程序查询的方式。

下面就用外部中断的方法来改写一下第二个示例中,通过按键来更改闪烁速度的例子(第二个例子)。

电路结构和接线不变,仅把程序改为下面的形式。

#include ;unsigned int t=500; //定义一个全局变量t,并设定初始值为500次//===========延时子函数,在8MHz晶振时约1ms=============void delay_ms(unsigned int k){unsigned int i,j;for(i=0;i<k;i++){for(j=0;j<1140;j++);}}//============主函数==================================void main( void ){DDRB = 0xFF; //设置端口B为输出方向PORTB = 0xFF; //设置端口B的输出为全高电平DDRD = 0x00; //设置端口D为输入方向PORTD = 0xFF; //设定端口D为内部上拉方式,无信号输入时处于高电平状态MCUCR = 0x0A; //设定INT0、INT1为下降沿触发GICR = 0xC0; //使能INT0、INT1中断SREG = 0x80; //使能总中断while(1){PORTB = 0x55; //让接在端口B上的LED显示01010101 delay_ms(t); //延时t个msPORTB = 0xAA; //让接在端口B上的LED显示01010101 delay_ms(t); //延时t个ms}}//============中断函数(外部0)==========================#pragma vector = INT0_vect__interrupt void INT0_Server(void){t = 100; //设定t的值为100次}//============中断函数(外部1)==========================#pragma vector = INT1_vect__interrupt void INT1_Server(void){t = 500; //设定t的值为500次}把上述程序进行编译并下载到单片机中,可以看到结果与第二个示例中的完全一致。

micropython外部中断函数

micropython外部中断函数

一、介绍Micropython外部中断函数的概念Micropython是一种精简版本的Python编程语言,专门用于嵌入式系统和微控制器。

它提供了对硬件的直接访问和控制,使得开发者可以使用Python语言来编写嵌入式系统的程序。

外部中断函数是Micropython中一个重要的功能,可以监听和响应外部事件,例如按键按下、传感器触发等,从而实现系统对外部环境的实时响应。

二、Micropython外部中断函数的基本原理1. 外部中断函数的概念外部中断函数是一种特殊的功能,能够在系统的运行过程中,实时地对外部事件进行监听和响应。

它可以在不影响系统正常运行的情况下,立即中断当前的程序执行,执行预先定义的外部中断函数。

这种功能对于嵌入式系统来说非常重要,因为它能够使系统实时地响应外部事件,从而提高系统的可靠性和实用性。

2. Micropython外部中断函数的实现在Micropython中,外部中断函数是通过预先定义的中断处理函数来实现的。

用户可以使用特定的语法和API接口来注册外部中断处理函数,当外部事件发生时,系统会立即执行相应的中断处理函数。

在中断处理函数中,用户可以编写对外部事件的响应逻辑,例如读取传感器数值、控制执行器等。

这种机制可以使得Micropython系统能够实时地响应外部事件,从而实现更加智能和可靠的嵌入式系统。

三、Micropython外部中断函数的应用场景1. 按键按下事件在很多嵌入式系统中,按键按下事件是一个非常常见的外部事件,例如控制器、机器人等。

通过注册外部中断函数,系统可以实时地监测按键按下事件,并且执行相应的逻辑,例如控制器可以根据按键按下事件来实现不同的操作,机器人可以通过按键按下事件来启动或者停止运动。

2. 传感器触发事件传感器是嵌入式系统中常用的外部设备,可以用来感知周围的环境信息,例如光线、声音、温度、湿度等。

通过注册外部中断函数,系统可以实时地监测传感器触发事件,并且执行相应的逻辑,例如控制系统可以根据光线传感器触发事件来调节亮度,温度传感器触发事件来控制风扇开关等。

AVR笔记:外部中断

AVR笔记:外部中断

A VR学习笔记之【外部中断】【一】Mega16共有三个外部中断,外部中断相比定时器而言它的寄存器比较少,因此相对比较简单。

我们现在只关心需要用的部分,其他的暂且放弃不管。

和外部中断相关的特殊功能寄存器有:①MCU控制寄存器(MCUCR)在上面八位的寄存器中,白色的部分使我们要关心的,灰色部分就不用管了。

资料上对后面四位(第四位)的作用有介绍。

ISC11与ISC10控制中断1的触发方式。

下表为ISC10/11的值对应触发方式:SC11与ISC10控制中断0的触发方式。

下表为ISC00/01的值对应触发方式:我们在使用外部中断0和1的时候,其触发方式的设置便是通过以上ISC的不同值实现的。

至于INT2下面有介绍。

②MCU控制与状态寄存器(MCUCSR)这个寄存器只有一个BIT与外部中断相关。

ISC2,我们通过和INT0/1的对比可以发现ISC的后缀数字命名只有规律的,这会方便我们记忆。

同时在说明文档上说了很长一段关于ISC2的说明:他的意思说早了,他也就是想说:ISC=0的话INT2是下降沿出发中断,ISC=1是上升沿出发。

这才是应该说明的最重要的点。

他后面还说了:(1)如果你让ISC=0那么外部的低电平必须保持到当前正在运行的指令运行结束才会出发,换一句意思就是,如果外部时间过短,有可能导致INT2不被触发。

(2)他又说明,如果改变ISC2的值的话有可能触发中断,导致误判,因此如果你想改变其中断触发方式的话,首先把通用中断控制寄存器(GICR)里面控制INT2的中断开关关了,这样便不会触发中断了。

③通用中断控制寄存器(GICR)他就是个中断开关。

前面三位依次赋值便会打开响应中断。

当然总中断开关也要打开才行(SREG|=BIT(7))。

④通用中断标志寄存器(GIFR)他就是一个中断标志,我们也就是说在中断发生的时候中断对用的标志会变为1,此时程序会自动转到中断程序子函数。

然后有硬件自动清零,以等待下一次的中断发生。

外部中断学习笔记

外部中断学习笔记

资料来源:/zzwdkxx/article/details/9036679 STM32-外部中断学习笔记2013-06-07 10:1813368人阅读评论(1) 收藏举报分类:STM32(25)目录(?)[+]中断分类STM32的EXTI控制器支持19 个外部中断/ 事件请求。

每个中断设有状态位,每个中断/ 事件都有独立的触发和屏蔽设置。

STM32的19个外部中断对应着19路中断线,分别是EXTI_Line0-EXTI_Line18:线0~15:对应外部IO口的输入中断。

线16:连接到PVD 输出。

线17:连接到RTC 闹钟事件。

线18:连接到USB 唤醒事件。

触发方式:STM32 的外部中断是通过边沿来触发的,不支持电平触发。

外部中断分组:STM32 的每一个GPIO都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。

寄存器组EXTICR寄存器组,总共有4 个,因为编译器的寄存器组都是从0 开始编号的,所以EXTICR[0]~ EXTICR[3],对应《STM32参考手册》里的EXTICR1~ EXTICR 4(查了好久才搞明白这个数组的含义!!)。

每个EXTICR只用了其低16 位。

EXTICR[0] ~EXTICR[3]的分配如下:EXTI寄存器的结构体:typedef struct{vu32 IMR;vu32 EMR;vu32 RTSR;vu32 FTSR;vu32 SWIER;vu32 PR;} EXTI_TypeDef;IMR:中断屏蔽寄存器这是一个32 寄存器。

但是只有前19 位有效。

当位x 设置为1 时,则开启这个线上的中断,否则关闭该线上的中断。

STM32外部中断5-9,10-15的应用解析

STM32外部中断5-9,10-15的应用解析
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIOE7
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通输入模式
EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0
EXTI_Init(&EXTI_InitStructure);//配置
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource9);//PE9连接到中断线9
/*配置EXTI_Line5 */
EXTI_InitStructure.EXTI_Line = EXTI_Line5;//LINE5
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件
EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_Rising; //上升沿触发
STM32外部中断5-9,10-15的应用解析
STM32有些系列(比如STM32F407)的外部中断5-9是共用一个中断处理函数EXTI9_5_IRQHandler(),外部中断10-15共用中断函数EXTI15_10_IRQHandler(),所以很多人(包括我自己)刚开始时对于这些外部中断线的设置以及判断都不是弄得很清楚,下面就直接贴出中断引脚的配置、中断配置以及进入中断之后的判断处理程序。

STM32外部中断原理与配置

STM32外部中断原理与配置

STM32外部中断原理与配置STM32-外部中断原理与配置IO⼝外部中断原理概述STM32控制器⽀持的外部中断/事件请求中断线M3M4M7EXTI线0~15:对应外部IO⼝的输⼊中断。

√√√EXTI线16:连接到PVD输出。

√√√EXTI线17:连接到RTC闹钟事件。

√√√EXTI线18:连接到USB OTG FS唤醒事件。

√√√EXTI线19:连接到以太⽹唤醒事件。

√√EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件√√EXTI线21:连接到RTC⼊侵和时间戳事件。

√√EXTI线22:连接到RTC唤醒事件。

√√EXSTI线23:连接到LPTIM1异步事件√IO⼝外部中断STM32的每个IO都可以作为外部中断输⼊。

每个外部中断线可以独⽴的配置触发⽅式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专⽤的状态位。

STM32供IO使⽤的中断线只有16个,但是STM32F系列的IO⼝多达上百个,STM32F103ZGT6(112),那么中断线怎么跟io⼝对应呢?GPIO和中断线映射关系GPIOx.0映射到EXTI0GPIOx.1映射到EXTI1……GPIOx.14映射到EXTI14GPIOx.15映射到EXTI15对于M4/M7,配置寄存器为SYSCFG_EXTIRx对于M3,配置寄存器为AFIO_EXTICRx如下图所⽰,EXTI0[3:0]有4个位,可以配置16个,所以可以从PA0选择到PI0。

也就是说16个中断线,最多可以处理16*16个外部引脚的中断。

可以在⼿册中找到SYSCFG 外部中断配置寄存器:16个中断线就分配16个中断服务函数?IO⼝外部中断在中断向量表中只分配了7个中断向量,也就是只能使⽤7个中断服务函数。

从表中可以看出,外部中断线5~ 9分配⼀个中断向量,共⽤⼀个服务函数外部中断线10~15分配⼀个中断向量,共⽤⼀个中断服务函数。

中断服务函数列表:EXTI0_IRQHandlerEXTI1_IRQHandlerEXTI2_IRQHandlerEXTI3_IRQHandlerEXTI4_IRQHandlerEXTI9_5_IRQHandlerEXTI15_10_IRQHandlerIO⼝外部中断HAL库配置⽅法外部中断操作使⽤到的函数分布⽂件stm32fxxx_hal_gpio.hstm32fxxx_hal_gpio.c外部中断配置:外部中断的中断线映射配置和触发⽅式都是在GPIO初始化函数中完成:GPIO_InitTypeDef GPIO_Initure;GPIO_Initure.Pin=GPIO_PIN_0; //PA0GPIO_Initure.Mode=GPIO_MODE_IT_RISING; //上升沿触发GPIO_Initure.Pull=GPIO_PULLDOWN;HAL_GPIO_Init(GPIOA,&GPIO_Initure);void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init){uint32_t position;uint32_t ioposition = 0x00;uint32_t iocurrent = 0x00;uint32_t temp = 0x00;/* Check the parameters */assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));assert_param(IS_GPIO_PIN(GPIO_Init->Pin));assert_param(IS_GPIO_MODE(GPIO_Init->Mode));assert_param(IS_GPIO_PULL(GPIO_Init->Pull));/* Configure the port pins */for(position = 0; position < GPIO_NUMBER; position++){/* Get the IO position */ioposition = ((uint32_t)0x01) << position;/* Get the current IO position */iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;if(iocurrent == ioposition){/*--------------------- GPIO Mode Configuration ------------------------*//* In case of Alternate function mode selection */if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)){/* Check the Alternate function parameter */assert_param(IS_GPIO_AF(GPIO_Init->Alternate));/* Configure Alternate function mapped with the current IO */temp = GPIOx->AFR[position >> 3];temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ;temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4));GPIOx->AFR[position >> 3] = temp;}/* Configure IO Direction mode (Input, Output, Alternate or Analog) */temp = GPIOx->MODER;temp &= ~(GPIO_MODER_MODER0 << (position * 2));temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2));GPIOx->MODER = temp;/* In case of Output or Alternate function mode selection */if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) {/* Check the Speed parameter */assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));/* Configure the IO Speed */temp = GPIOx->OSPEEDR;temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2));temp |= (GPIO_Init->Speed << (position * 2));GPIOx->OSPEEDR = temp;/* Configure the IO Output Type */temp = GPIOx->OTYPER;temp &= ~(GPIO_OTYPER_OT_0 << position) ;temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4) << position);GPIOx->OTYPER = temp;}/* Activate the Pull-up or Pull down resistor for the current IO */temp = GPIOx->PUPDR;temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2));temp |= ((GPIO_Init->Pull) << (position * 2));GPIOx->PUPDR = temp;/*--------------------- EXTI Mode Configuration ------------------------*//* Configure the External Interrupt or event for the current IO */if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE){/* Enable SYSCFG Clock */__HAL_RCC_SYSCFG_CLK_ENABLE();temp = SYSCFG->EXTICR[position >> 2];temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03)));temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03)));SYSCFG->EXTICR[position >> 2] = temp;/* Clear EXTI line configuration */temp = EXTI->IMR;temp &= ~((uint32_t)iocurrent);if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT){temp |= iocurrent;}EXTI->IMR = temp;temp = EXTI->EMR;temp &= ~((uint32_t)iocurrent);if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT){temp |= iocurrent;}EXTI->EMR = temp;/* Clear Rising Falling edge configuration */temp = EXTI->RTSR;temp &= ~((uint32_t)iocurrent);if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE){temp |= iocurrent;}EXTI->RTSR = temp;temp = EXTI->FTSR;temp &= ~((uint32_t)iocurrent);if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE){temp |= iocurrent;}EXTI->FTSR = temp;}}}}和串⼝中断⼀样,HAL库同样提供了外部中断通⽤处理函数HAL_GPIO_EXTI_IRQHandler,我们在外部中断服务函数中会调⽤该函数处理中断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

外部中断函数
外部中断是指由外部硬件设备所产生的中断信号,如输入输出设备、定时设备等。

当外部中断信号发生时,CPU会停止执行当前程序,并跳转到外部中断服务程序(一般称为中断向量表)执行,以响应外部设备的请求和处理。

外部中断函数一般包括以下几个方面的内容:
1. 中断初始化
中断初始化主要包括对中断控制寄存器的设置和中断向量表的初始化。

中断控制寄存器包括一些位控制器(如中断请求使能、嵌套中断控制等),一般需要根据具体的中断请求设置相关寄存器。

中断向量表是用来保存每个中断源对应的中断处理函数。

在初始化过程中,需要将中断向量表的每个位置初始化为相应中断源的处理函数地址。

2. 中断服务程序的编写
中断服务程序是处理具体中断请求的程序。

它在中断向量表中的地址被启动后,会促使CPU在中断响应后立即执行。

因此,中断服务程序需要尽可能地短小精悍,以避免在中断响应期间对系统的影响。

中断服务程序设计的最终目的是尽可能快地处理中断请求,并返回正常程序执行。

3. 中断嵌套控制
中断嵌套控制用来控制多个中断请求同时发生的情况。

由于每个中断源的中断优先级不同,因此需要对中断响应的优先级进行设置。

在高优先级中断程序执行时(如定时器),如果产生低优先级的中断需求,则可以设置相应的“屏蔽位”来延迟该中断请求的响应,以确保高优先级中断程序能够及时地执行完毕。

4. 中断清除和退出
中断清除是指在中断处理过程中统计计数器、设置标志位、清除中断请求等操作。

中断退出是实现程序从中断服务程序恢复到主程序执行之前所必需的工作。

中断退出需要处理相关寄存器、栈指针、状态字等。

在退出中断时,还需要确保中断响应已结束并将执行权转交给主程序。

总之,外部中断函数是嵌入式系统中非常重要的一部分,尤其是对于实时控制系统来说。

外部中断的正确设置和处理,可以极大地提高嵌入式系统对外界环境的响应能力,为系统的稳定性和实时性提供有力保障。

相关文档
最新文档