版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术与应用认知CC2530中断源CC2530中断源的基础概念硬件事件按键按下软件事件定时器溢出传感器数据到达程序中的特定指令能够触发中断的事件或信号触发器CC2530中断源的基础概念GPIO引脚电平跳变数据接收完成定时器溢出中断源紧急呼叫CPU暂停当前任务,优先处理突发事件响应外部事件的重要机制中断源如同人体的感觉器官,是芯片感知外部事件的核心通道丨中断源:中断机制的起点CC2530的18个中断源18个中断源唯一中断号标识和区分不同的中断事件CC2530的18个中断源中断控制器动态分组动态响应CC2530的18个中断源RF完成帧收发等操作时触发RF收发中断当ADC模块完成传感器数据采集的模数转换时触发ADC转换完成中断USART0接收缓冲区满时触发串口0接收中断USART1接收缓冲区满时触发串口1接收中断AES加密/解密操作完成后触发AES加密完成中断睡眠定时器溢出时唤醒系统睡眠定时器中断CC2530的18个中断源P2口配置为外部中断的引脚电平变化时触发外部中断2(P2引脚)USART0发送缓冲区空时触发串口0发送中断DMA通道传输完成时触发DMA完成中断定时器1溢出、输入捕获或比较匹配时触发Timer1中断定时器2发生特定事件时触发中断Timer2中断定时器3溢出或比较匹配时触发Timer3中断CC2530的18个中断源定时器4溢出或比较匹配时触发Timer4中断P0口配置为外部中断的引脚电平变化时触发外部中断0(P0引脚)USART1发送缓冲区空时触发串口1发送中断P1口配置为外部中断的引脚电平变化时触发外部中断1(P1引脚)射频(RF)模块在遇到一些预先定义的通用事件时触发RF通用中断看门狗超时未喂狗时触发系统复位看门狗定时器中断CC2530中断源的典型应用场景外部中断按键控制LED人机交互ADC中断实时读取传感器数据(如温湿度)数据采集USART中断实现串口数据收发通信同步CC2530中断源的典型应用场景外部中断源实现门铃功能:当有人按下门铃按钮时,GPIO端口检测到电平变化,触发外部中断。外部中断控制门铃发声通过内部中断源,如串口通信模块,将门铃事件发送给家庭网络中的其他设备单片机技术与应用中断源丨嵌入式系统的核心感知机制GPIO定时器通信实现设备与环境的实时交互单片机技术与应用事件响应管理能力智能物联设备生命特征单片机技术与应用技术精进需与责任同行设计中断系统:应始终秉持“技术为民”的理念,确保每一次中断响应都能为社会创造安全、高效的价值,让冷硬的芯片承载人文温度。了解CC2530中断源的优先级为什么需要优先级?智能家居系统:烟雾传感器中断的优先级应高于温度传感器中断,因为烟雾传感器检测到的火灾隐患更为紧急,需要立即处理。
优先级的意义紧急事件得到及时响应避免处理不当导致故障CC2530的中断优先级管理规则高优先级:心脏骤停(如RF收发中断)中优先级:低优先级:骨折(如定时器中断)感冒(如GPIO中断)立即处理排队处理最后处理为便于灵活运用,各个中断源的优先级可以通过编程设置CC2530的中断优先级管理规则中断嵌套中断源的优先级判断优先为哪个中断源服务CPU支持以中断嵌套的方式来依次处理各个中断源的中断请求CC2530CC2530的中断优先级管理规则高优先级打断
低优先级(急诊插队)同级别不会打断正在处理的中断低级别先到先服务CC2530的中断优先级管理规则CC2530的中断源分组组中断源IPG0RFERRRFDMAIPG1ADCT1P2INTIPG2URX0T2UTX0IPG3URX1T3UTX1IPG4ENCT4P1INTIPG5STP0INTWDT6个中断优先级组包含3个中断源单片机技术与应用CC2530中断源优先级设置CC2530中断源优先级设置6个中断优先组(IPG0~IPG5)CC25300级1级2级3级最低优先级最高优先级CC2530中断源优先级设置优先级寄存器IP0寄存器IP1CC2530中断源优先级设置寄存器定义CC2530中断源优先级设置优先级IP1_IPGX寄存器设置(高位)IP0_IPGX寄存器设置(低位)说明0级0000最低(默认)1级0101较低2级1010较高3级1011最高(可插队)CC2530中断源优先级设置IPG0组的优先级设置为3IP1的第0位置为1IP0的第0位置为1CC2530中断优先级设置灵活:通过优先级设置,可确保关键任务的中断优先级足够高。CC2530中断源的自然优先级自然优先级规则:
如果多个组被设置成相同级别,则组号小的要比组号大的优先级高。例如,如果IPG0-IPG5是同级,则IPG0优先级最高,而IPG5优先级最低。
同一组内的3个中断源,最左侧的中断源优先级最高,最右侧的优先级最低。CC2530中断源的自然优先级IPG0RFERRRFDMA优先级最高优先级最低确保了中断系统的正常工作提升嵌入式系统的实时性通过实践提升能力培养解决问题的能力和严谨的工程思维CC2530中断源的自然优先级中断优先级合理规划优先级管理:
把国家需求和社会责任放在首位,个人成长紧随其后为祖国的科技发展贡献力量外部中断实现按键控灯任务分析任务要求CC2530的外部中断功能按键控制LED灯的亮灭
按下按键SW1时翻转D5灯的开关状态任务要求CC2530的18个中断源外部中断触发原理CC2530外部中断基础知识外部中断:I/O端口CC2530芯片电平信号中断系统CPU中断请求监测单片机外接器件的状态或请求按键按下信号出现CC2530外部中断基础知识CC2530支持3个I/O端口的外部中断:P0INTP1INTP2INT外部中断的电平触发类型:输入电平上升沿触发输入电平下降沿触发CC2530外部中断基础知识关键寄存器:IENx:开启Px端口外部中断使能及系统总中断使能。PICTL:选择中断触发沿(下降沿/上升沿)方式。PxIEN:开启Px端口各引脚中断使能。CC2530外部中断基础知识中断标志三个I/O端口及端口各引脚都有独立的中断标志位,当中断触发时标志位会自动置1。当中断服务处理完毕后需手动将中断标志位清0,清除中断标志位,可避免重复触发中断。CC2530外部中断基础知识中断标志:PxIF(中断标志位):用于配置Px端口中断标志。PxIFG寄存器:用于配置Px端口各引脚中断状态标志位。CC2530外部中断基础知识外部中断初始化配置四步法:使能端口中断使能端口某引脚中断设置触发边沿类型使能总中断CC2530外部中断基础知识外部中断触发的处理流程:外部中断触发
按键SW1按下(高电平→低电平)芯片检测到P1_2引脚的电平信号变化,引发中断CC2530外部中断基础知识外部中断触发的处理流程:中断标志位自动置1
CPU暂停当前任务保护任务现场CC2530外部中断基础知识外部中断触发的处理流程:CPU快速响应外部中断执行中断服务程序(ISR)控制LED状态CC2530外部中断基础知识外部中断触发的处理流程:中断标志位清零CPU返回原任务处继续执行任务目标外部中断初始化配置四步法外部中断标志位的配置外部中断的关键寄存器的配置外部中断服务函数的设计与编写培养硬件与软件协同工作能力,提升嵌入式系统开发的综合能力,为后续复杂项目奠定基础。硬件连接电路分析按键SW1的一端连接到CC2530的I/O引脚P1_2,按键未按下时P1_2引脚为高电平,按下后P1_2为低电平。D5灯的阳极连接到CC2530的I/O引脚P1_3,阴极通过1KΩ限流电阻接地。任务实现原理分析GPIO引脚初始化配置通过设置P1SEL、P1DIR寄存器,将P1_3配置为通用I/O的输出口,用于控制D5灯,并先设置D5灯熄灭。任务实现原理分析按键SW1的外部中断初始化配置通过设置PICTL寄存器,配置P1_2引脚的中断触发方式为下降沿触发。通过设置P1IEN寄存器,使能P1_2引脚的外部中断功能。通过设置IEN2寄存器,使能P1端口的外部中断。将EA置1,使能总中断。任务实现原理分析按键中断检测:当按键SW1未按下时,P1_2引脚为高电平;当按键SW1按下时,P1_2引脚被拉低至低电平,系统检测到电平下降后,就触发了“下降沿”的外部中断,进而CPU中断主程序,转而执行中断服务函数。任务实现原理分析在中断服务函数中,根据中断触发,对应中断标志位会自动置1的特点,首先通过P1IFG寄存器,判断是否是P1_2引脚触发的中断,若是,则切换D5灯的亮灭状态,具体实现为翻转P1_3引脚的输出电平。完成控制D5灯状态后,通过P1IFG寄存器将P1_2口中断标志位清零,再将P1端口中断标志位P1IF清零,以便CPU退出中断返回主程序。P1端口外部中断服务函数编写外部中断实现按键控灯任务分析掌握CC2530外部中断工作原理应用CC2530外部中断实现按键控灯巩固I/O端口和外部中断的知识复杂嵌入式系统开发奠定了基础外部中断实现按键控灯任务分析实践深化理解灵活运用技术外部中断实现按键控灯程序设计分析单片机技术与应用外部中断实现按键控制LED灯基础且重要的实验项目程序设计总流程核心逻辑:通过配置按键SW1所连的P1_2引脚的外部中断功能程序设计总流程检测按键按下事件触发外部中断在中断服务函数中切换D5灯的状态程序设计总流程编程的核心:外部中断的配置与中断服务函数的设计,包括按键按下状态的识别。程序设计总流程按键与LED灯的电路连接中断信号检测方法按键外部中断的配置CC2530I/O端口配置程序设计总流程任务实现的过程实验开发板上实现根据程序流程图编写代码任务实现的程序流程图任务实验设计思路硬件准备:任务采用的硬件是CC2530黑色开发板。开发板上的D5灯连接P1端口的P1_3引脚,同时按键SW1连接P1_2引脚。任务实验设计思路编写I/O端口初始化函数通过设置P1SEL寄存器配置P1_3引脚为通用I/O口,设置P1DIR寄存器将P1_3引脚配置为输出模式,这样P1_3引脚才能通过输出电平的高低来控制D5灯的状态。软件设计目标任务实验设计思路通过P1IEN寄存器使能P1_2引脚中断。通过IEN2寄存器使能P1端口组中断。通过位寻址EA置1,使能总中断。通过PICTL寄存器配置P1_2引脚的外部中断为下降沿触发。当按键SW1按下时,P1_2引脚的电平从高变低,触发外部中断。编写外部中断初始化函数任务实验设计思路按键触发中断状态检测:在中断服务函数中,通过P1IFG寄存器判定P1_2引脚中断标志位置1后,通过翻转P1_3引脚的输出电平,切换D5灯的亮灭状态。完整清除各中断标志位:通过P1IFG寄存器清除P1_2引脚中断标志位,再通过位寻址P1IF清除P1端口中断标志,以避免重复触发中断。编写外部中断服务函数此中断服务函数在SW1按键按下触发外部中断时会被执行:任务实验设计思路编写主函数在主函数中先通过调用I/O端口初始化函数和外部中断初始化函数初始化硬件,然后在主循环置空情况下等待外部中断触发,等SW1按键按下时将转向执行中断服务函数,主函数中无需实时检测按键状态。任务实验设计思路熟练使用C语言的语法和函数编写清晰、易读的代码稳定可靠,无异常现象编程实现目标任务实验设计思路优化与调试代码结构优化:将各功能模块代码封装为函数,提高程序的可读性和可维护性,方便在其他项目中复用。调试程序:检查并调试程序的执行流程,观察程序是否能够正确检测按键中断状态进而达到控制D5灯的亮灭。硬件调试:确保硬件连接正确,特别是按键和LED灯的连接。实验设计流程图开始
↓硬件初始化(包含调用I/O端口初始化函数和外部中断初始化函数)
↓主程序循环├─→置空└─→等待外部中断(按键按下)触发
↓(当外部中断触发,CPU执行外部中断服务函数。)外部中断服务函数├─→
切换D5灯亮灭状态└─→
清除P1IFG、P1IF中断标志位↓退出中断返回主程序
↓结束应用扩展实现多个按键控制多个LED灯结合定时器实现更复杂的灯光效果呼吸灯流水灯外部中断实现按键控灯程序设计分析掌握了外部中断的具体配置与应用外部中断实现按键控灯程序设计分析“精益求精”嵌入式开发中的重要性中断机制精准响应每一次按键触发那样外部中断相关寄存器配置单片机技术与应用CC2530开发丨寄存器的配置是实现硬件控制的关键外部中断相关寄存器的配置实现外部中断的触发与响应单片机技术与应用外部中断使能中断标志位外部中断触发类型一、外部中断寄存器配置的重要性嵌入式系统设计中丨外部中断:系统对外部事件快速响应外部中断相关寄存器的配置:实现外部中断的使能、触发类型选择、中断标志位配置等操作,从而使系统实现对外部中断的精确响应二、外部中断相关寄存器的具体配置IENxEA位PxIEN正确配置是实现外部中断触发与响应的关键外部中断的任务PICTLPxIFGPxIF位二、外部中断相关寄存器的具体配置1.IENx(中断使能寄存器)与EA(总中断使能位)功能:x为0-2,CC2530有18个中断源,通过IEN0、IEN1和IEN2三个寄存器的各位来分别配置总中断和18个中断源的使能IEN0|=0x80;(或EA=1;)IEN2|=0x10配置:二、外部中断相关寄存器的具体配置1.IENx(中断使能寄存器)与EA(总中断使能位)说明:IEN0的最高位EA是总中断使能位,通过|操作将EA置1,或直接位寻址EA置1,均可使能总中断;IEN2的第4位是端口组P1的中断使能位,通过|操作将其置1,使能端口组P1的外部中断作用:使能总中断和各中断源,为中断的响应提供基础二、外部中断相关寄存器的具体配置2.PxIEN(端口组引脚中断使能寄存器)功能:PxIEN寄存器用于使能相应端口组引脚的外部中断。P0IEN、P1IEN和P2IEN分别对应P0、P1和P2端口组P1IEN|=0x04配置:说明:0x04的二进制是00000100,通过|操作将P1_2引脚对应位
置1,使能P1_2引脚的外部中断作用:使能Px端口组各引脚的外部中断,允许各端口组上的各引脚产生中断请求二、外部中断相关寄存器的具体配置3.PICTL(端口中断控制寄存器)功能:PICTL寄存器用于设置外部中断输入信号的触发类型触发类型有两类,一类是上升沿触发,另一类是下降沿触发0:上升沿产生中断,1:下降沿产生中断PICTL|=0x02配置:说明:0x02的二进制是00000010,通过|操作将PICTL寄存器的第1位置1,即将P1_3~P1_0引脚的外部中断配置为下降沿触发作用:为各端口引脚外部中断选择触发类型,当外部信号电平按所选类型变化时,可触发中断二、外部中断相关寄存器的具体配置功能功能PxIFG寄存器用于标示各端口具体引脚的中断触发状态P0IFG、P1IFG和P2IFG分别对应P0、P1和P2端口组,每个寄存器的各位对应一个引脚,当相应端口组的具体引脚有中断请求时,相应标志位会置1端口组标志位PxIF用于标示相应端口组是否有中断请求产生当任一个端口组上的引脚有中断请求产生时,对应的PxIF会自动置1。P0IF、P1IF和P2IF分别对应P0、P1和P2端口组4.PxIFG(端口状态标志寄存器)和PxIF(端口组标志位)二、外部中断相关寄存器的具体配置功能配置一般中断标志位均会在对应中断触发时自动置1(表示中断未决),但需要手动将中断标志位清0,以便退出中断P1IFG&=~0x04;P1IF=04.PxIFG(端口状态标志寄存器)和PxIF(端口组标志位)说明~0x04的二进制是11111011,通过&操作将P1IFG的第3位清0,清除P1_2引脚的中断标志位P1IF直接置0,清除P1端口组中断标志位二、外部中断相关寄存器的具体配置检测PxIFG对应位的值相应端口组的具体引脚是否有中断请求产生作用:检测PxIF位的值相应端口组是否有中断请求产生二、外部中断相关寄存器的具体配置作用:清除顺序是先清除PxIFG里的对应位,再清除PxIF位可用于手动清除各端口具体的引脚的中断标志位和各端口组中断标志位,为下一次中断请求做好准备结语外部中断触发与响应提供支持基础CC2530寄存器的配置精确高效精益求精的工匠精神融入到工作和学习中学习科技创新是引领发展的第一动力追求知识的深度与广度以严谨求实的态度对待技术外部中断实现按键控灯代码分析单片机技术与应用
代码丨外部中断按键控制LED灯分析逻辑功能单片机技术与应用掌握外部中断配置中断服务函数设计D5灯状态切换一、控制代码展示依据程序流程图的设计思路//外部中断初始化函数voidInit_Interrupt(){//外部中断标志位置0P1IFG=0x00;//使能P1端口组中断IEN2|=0x10;//使能P1_2引脚中断P1IEN|=0x04;//选择外部中断信号下降沿触发PICTL|=0x02;//使能总中断EA=1;}依托C语言CC2530寄存器工作手册#include"ioCC2530.h"
//引用CC2530头文件#defineD5
(P1_3)
//引脚宏定义,D5灯连接P1_3引脚//I/O端口初始化函数voidInit_IO(){
//配置端口的功能
P1SEL&=~0x1B;
//配置端口方向
P1DIR|=0x1B;
//关闭D5灯
P1&=~0x1B;}一、控制代码展示依据程序流程图的设计思路//P1端口外部中断服务函数#pragmavector=P1INT_VECTOR__interruptvoidP1_ISR(){if(P1IFG&0x04){//检查P1_2是否已触发中断(SW1)D5=~D5;//翻转D5灯状态
P1IFG&=~0x04;//清除P1_2引脚中断标志位}P1IF=0;//清除P1端口中断标志位}//主函数voidmain(){Init_IO();//初始化I/O端口Init_Interrupt();//初始化外部中断while(1){//主循环空置,等待外部中断}}依托C语言CC2530寄存器工作手册#include"ioCC2530.h"
//引用CC2530头文件#defineD5
(P1_3)
//引脚宏定义,D5灯连接P1_3引脚//I/O端口初始化函数voidInit_IO(){
//配置端口的功能
P1SEL&=~0x1B;
//配置端口方向
P1DIR|=0x1B;
//关闭D5灯
P1&=~0x1B;}二、代码分析#include"ioCC2530.h"引入CC2530寄存器定义头文件"ioCC2530.h",代码中便可直接使用硬件寄存器名称(如P1DIR、PICTL等)1.包含头文件二、代码分析2.宏定义引脚#defineD5(P1_3)将P1_3引脚宏定义命名为D5可提升代码可读性与可维护性二、代码分析P1SEL寄存器3.I/O端口初始化函数Init_IO()通过配置第3位为0将P1_3引脚的功能设为通用I/O口配置第3位为1将P1_3引脚设为输出模式
能控制D5灯配置第3位为0将P1_3引脚设为低电平D5灯熄灭voidInit_IO(){
//配置端口的功能
P1SEL&=~0x1B;
//配置端口方向
P1DIR|=0x1B;
//关闭D5灯
P1&=~0x1B;}P1DIR寄存器P1寄存器二、代码分析P1IFG寄存器4.外部中断初始化函数Init_Interrupt()初始化所有位为0清除引脚中断标志位
避免误触发通过配置第4位为1使能P1端口中断通过配置第2位为1使能P1_2引脚中断voidInit_Interrupt(){//P1端口引脚外部中断标志位置0P1IFG=0x00;//使能P1端口组中断IEN2|=0x10;//使能P1_2引脚中断P1IEN|=0x04;//选择外部中断信号下降沿触发PICTL|=0x02;//使能总中断EA=1;}IEN2寄存器P1IEN寄存器第1位为1配置P1端口部分引脚电平下降沿触发中断PICTL寄存器最高位EA被位寻址置1开启总中断IEN0寄存器二、代码分析5.外部中断服务函数P1_ISR()#pragmavector=P1INT_VECTOR__interruptvoidP1_ISR(){if(P1IFG&0x04){//检查是否P1_2触发中断(SW1)D5=~D5;//翻转D5灯状态
P1IFG&=~0x04;//清除P1_2引脚中断标志位}P1IF=0;//清除P1端口中断标志位}进入中断服务函数后,通过检测P1IFG寄存器第3位值是否为1,判定P1_2引脚是否引发外部中断,确定后就翻转D5灯状态(D5=~D5)一开始就要在CPU进入指定的P1端口外部中断服务函数前,声明P1端口的中断向量,类似通报服务函数的存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初级中学教师资格考试综合素质写作立意测试题及答案
- 2026年高考甲卷理综数学考试卷及答案
- 2026年保密知识答题活动真题卷
- 2026年湖南中小学教师招聘考试试题题库及答案
- 2026年湖南省邵阳市中小学教师招聘考试题库及答案
- 2025年辽宁抚顺市中考物理真题试题(含答案)
- 北师大版2 直角三角形第2课时教学设计
- 地理人教版 (2019)第三节 河流地貌的发育教案设计
- 七 蚂蚁与白蚁教学设计小学综合实践活动粤教版三年级下册-粤教版(2016版)
- 危险化学品作业安全技术实际操作考场建设规
- 三效蒸发器操作规程
- 酒店英语面试问题及回答
- 装表接电实训 装表接电概述 课件
- 历史专业英语词汇
- 设计构成PPT完整全套教学课件
- 水文学课件ppt版 课件第七章
- 新教材选择性必修三有机化学基础全册课件
- GB/T 77-2007内六角平端紧定螺钉
- GB/T 28021-2011饰品有害元素的测定光谱法
- GA/T 992-2012停车库(场)出入口控制设备技术要求
- 医学统计学二项分布 课件
评论
0/150
提交评论