5.外部中断

news2024/12/25 23:53:19

中断初始化配置步骤:

  1. IO口初始化配置

  2. 开启中断总允许EA

  3. 打开某个IO口的中断允许

  4. 打开IO口的某一位的中断允许

  5. 配置该位的中断触发方式

中断函数:

#pragma vector = PxINT_VECTOR
__interrupt void 函数名(void){}

#pragma vector = PxINT_VECTOR
__interrupt void 函数名(void){}

image-20230927151133992

中断配置寄存器

IENx中断使能寄存器

image-20230927151945997

image-20230927151707935

image-20230927151729874

如果使能P0口中断,可直接使用P0IE = 1,但是使能P1/P2口中断,不能直接对单独的某一位进行操作,需要进行或操作开启,如IEN2 |= 0x10; // 0001 0000 相当于P1IE=1

PxIEN 通用 I/O 中断

通用 I/O 引脚设置为输入后,可以用于产生中断。中断可以设置在外部信号的上升或下降沿触发。P0、P1或 P2 端口都有中断使能位

image-20230927152159630

PICTL 中断边缘寄存器

image-20230927152314064

PxIFG中断状态标志寄存器

当中断条件发生在 I/O 引脚之一上面,P0-P2 中断标志寄存器 P0IFG、P1IFG 或 P2IFG 中相应的中断状态标志将设置为 1。不管引脚是否设置了它的中断使能位,中断状态标志都被设置。当中断已经执行,中断状态标志被清除,该标志写入 0。

【硬件置1,软件清0】

image-20230927152543051

IO口中断状态标志

image-20230927155024657

image-20230927155039070

中断服务函数

#pragma vector = PxINT_VECTOR

PxINT_VECTOR:需要根据自己选择的中断口自行改动(0,1,2)

其他部分不要改动

__interrupt void 函数名(void){ //清除中断标志 PxIFG=0; PxIF=0;}

自己根据需求编写函数名,然后根据打开的中断IO口,进行标志位清零

中断样例

#include<iocc2530.h>

void main(){
  
   P0SEL &= ~0x20;//P0_5设置为通用I/O口 1101 1111
   P0DIR &= ~0x20;//P0_5设置为输入
   P0INP &= ~0x20;//P0_5设置为上下拉
   P2INP &= ~0X20;//P0_5设置为上拉  
   
   //1.打开中断总允许
   EA=1;
   //2.打开P0口中断允许
   P0IE = 1;
   
   /*
   P1IE如果要设置为1,不能直接用P1IE = 1,不能直接使用位操作
   应该使用 IEN2 |= 0x10; // 0001 0000 相当于P1IE=1
   */

   //3.打开组内的某一位中断允许
   P0IEN |= 0x20;//P0_5中断打开 0010 0000
   //4.设置触发方式
   PICTL |=0x01;//把P0这一组配置成下降沿触发

   while(1);
}

#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void){ //P0_ISR为函数名,可自行定义
   if(P0IFG & 0x20)//判断P0_5是否发生中断
   {
   }
   //清除中断标志 
   P0IFG=0;
   P0IF=0;
}

#include<iocc2530.h>

void main(){

P0SEL &= ~0x20;//P0_5设置为通用I/O口 1101 1111
P0DIR &= ~0x20;//P0_5设置为输入
P0INP &= ~0x20;//P0_5设置为上下拉
P2INP &= ~0X20;//P0_5设置为上拉

//1.打开中断总允许
EA=1;
//2.打开P0口中断允许
P0IE = 1;

/*
P1IE如果要设置为1,不能直接用P1IE = 1,不能直接使用位操作
应该使用 IEN2 |= 0x10; // 0001 0000 相当于P1IE=1
*/

//3.打开组内的某一位中断允许
P0IEN |= 0x20;//P0_5中断打开 0010 0000
//4.设置触发方式
PICTL |=0x01;//把P0这一组配置成下降沿触发

while(1);
}

#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void){ //P0_ISR为函数名,可自行定义
if(P0IFG & 0x20)//判断P0_5是否发生中断
{
}
//清除中断标志
P0IFG=0;
P0IF=0;
}
Zigbee这个名字的灵感来源于蜂群的交流方式:蜜蜂通过Z字形飞行来通知发现的食物的位置、距离和方向等信息。Zigbee联盟便以此作为这个新一代无线通信技术的名称。 [2]
蜜蜂在发现花丛后会通过一种特殊的肢体语言来告知同伴新发现的食物源位置等信息,这种肢体语言就是ZigZag行舞蹈,是蜜蜂之间一种简单传达信息的方式。借此意义Zigbee作为新一代无线通讯技术的命名。在此之前ZigBee也被称为“HomeRF Lite”、“RF- EasyLink”或“fireFly”无线电技术,统称为ZigBee。
简单的说,ZigBee是一种高可靠的无线数传网络,类似于CDMA和GSM网络。ZigBee数传模块类似于移动网络基站。通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。
ZigBee是一个由可多到65535个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个ZigBee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。
与移动通信的CDMA网或GSM网不同的是,ZigBee网络主要是为工业现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个ZigBee“基站”却不到1000元人民币。
每个ZigBee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。除此之外,每一个ZigBee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP和ACP考哪个证书好,还是两个都考?

建议有条件都考&#xff0c;如果只能考一门&#xff0c;建议考PMP&#xff0c;PMP考试中会涉及敏捷管理的内容&#xff0c;特别是今年发布了新考纲&#xff0c;敏捷管理的内容已经增加到了50%。 先讲一下PMP PMP是美国PMI为考察项目管理人士的专业能力而设立的考试&#xff0…

使用Git下载大语言模型

在下载Huggingface和ModelScope上面的大语言预训练模型的时候&#xff0c;经常会因为网页无法访问或者文件太大无法下载的情况&#xff0c;是大家常常比较苦恼的事情&#xff0c;下面给出用Git下载模型到本地的方法&#xff0c;可以轻松解决上述问题。 目录 一、下载和安装Gi…

如何使用Etherscan Remix插件验证智能合约

在Moonbeam上验证合约的方式有很多&#xff0c;使用Etherscan Remix插件是最快、最简单的方式。 此示例中&#xff0c;我们展示如何在Remix上激活Etherscan插件并验证简单的增量智能合约。开始之前&#xff0c;请准备以下内容&#xff1a; MetaMask钱包 存有DEV的账户 将验证…

Linux 基础入门

目录 一、计算机 1、组成 2、功能 二、操作系统 1、定义 2、主要工作 3、操作系统内核功能 4、常见的操作系统 三、Linux的组成 四、搭建Linux学习环境 五、安装远程连接Linux的软件 1、安装xshell 2、安装mobaxterm 六、Linux操作系统学习大纲 一、计算机 1、组…

Multisim14.0仿真(二十三)施密特触发器构成的多谐振荡器

一、仿真原理图&#xff1a; 二、仿真效果图&#xff1a;

JVM111

JVM1 字节码与多语言混合编程 字节码 我们平时说的java字节码&#xff0c; 指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为:jvm字节码。不同的编译器&#xff0c;可以编译出相同的字节码文件&#xff0c;字节码文件…

外卖订餐系统:数字时代的美食点餐新体验

在数字时代&#xff0c;外卖订餐系统已经成为现代生活的一部分。它不仅改变了我们点餐的方式&#xff0c;还为餐饮业带来了巨大的变革。本文将深入探讨外卖订餐系统的崭新世界&#xff0c;探讨它的发展历程、优势和未来趋势。 从电话点餐到外卖订餐系统 许多人还记得过去打电…

LeetCode 1194.锦标赛优胜者

数据准备 Create table If Not Exists Players (player_id int, group_id int); Create table If Not Exists Matches (match_id int, first_player int, second_player int, first_score int, second_score int); Truncate table Players; insert into Players (player_id, g…

python进制转换

""" 基数:有几个数 0b 2进制: 0、1 基数是:2 0o 8进制: 0、1、2、3、4、5、6、7 基数是:8 0d 10进制: 0到9 基数是:10 0x 16进制: 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 基数是:16十进制转二进制: bin() 十进制转八进…

那么国内比较好用的ai写作助手?

在过去的几年里&#xff0c;人工智能&#xff08;AI&#xff09;已经取得了巨大的进步&#xff0c;其中之一就是AI写作助手。这些工具基于先进的自然语言处理技术&#xff0c;可以生成多种类型的文本&#xff0c;包括文章、博客、广告文案、新闻稿等。它们不仅可以提供高质量的…

canvas绘制基本图形——矩形

我们在初识canvas的时候已经用它画过矩形了&#xff0c;今天我们就总结下矩形的绘画方式 rect rect就是简单最基本的矩形绘制方法。它拥有四个参数&#xff0c;第一二两个参数表示他的x&#xff0c;y坐标&#xff0c;注意这是确定矩形左上角的坐标。第三和第四两个参数则表示…

Vue监控路由/路由参数, 刷新当前页面数据的几种方法

目录 Vue监控路由 Vue中watch监控路由 Vue中watch监控路由的某一个参数 Vue中watch同时监控多个路由 刷新当前页面数据 location.reload $router.go(0) this.$router.resolve()与this.$router.resolve() this.$router.resolve() this.$router.push() 场景 往期相关…

对比接口测试工具在自动化测试优缺点:Jmeter、Python、Postman

一、JMeter 总结&#xff1a;适合对代码不敏感的使用人员&#xff0c;不会代码也可以完成接口自动化&#xff0c;设计框架。适合紧急迭代的项目。 JMeter接口测试的优势 小巧轻量级&#xff0c;并且开源免费&#xff0c;社区接受度高&#xff0c;比较容易入门支持多协议&…

混沌学院-亚朵酒店案例-观后随心谈

我在混沌学院翻阅目录时候&#xff0c;选择了亚朵酒店创始人王海军的案例视频作为第一次学习的目标&#xff0c;原因仅仅是因为偶尔一次入住亚朵酒店之后的亲切好感。当时我就想亚朵酒店的经营者一定很厉害。亚朵用一个相对低廉的价格&#xff0c;打造了极度干净和温馨的入住体…

探索互联世界的灯光艺术:FastLED库详细介绍及应用实例

感谢太极创客提供素材 FastLED库-太极创客 太极创客B站视频 文章目录 基础程序为单一灯赋值fill_solid( 目标, 填充数, 颜色) – 将LED光带设置为同一颜色fill_rainbow(目标, 填充数, 开始颜色, 色差)– 将LED光带设置为渐变彩虹色fill_gradient_RGB(目标, 开始位置, 开始颜色…

CSS box-shadow阴影

1、语法 box-shadow: h-shadow v-shadow blur spread color inset; 值描述h-shadow必需的。水平阴影的位置。允许负值v-shadow必需的。垂直阴影的位置。允许负值blur可选。模糊距离spread可选。阴影的大小color可选。阴影的颜色。在CSS颜色值寻找颜色值的完整列表inset可选。…

使用 Sealos 构建低成本、高效能的私有云

这个时候谈论私有云似乎有点反直觉&#xff1f;大部分人认知不是上云是大趋势嘛&#xff1f;我也比较认可上云&#xff0c;不过私有云也是云&#xff0c;今天给大家带来一个新的选择 —— 用云&#xff0c;只需一个 Sealos 就够了。 看看我们怎么做到更低的成本&#xff0c;更…

亚马逊美国站自行车电动自行车儿童自行车的合规认证GCC+UL2849

GCC合规性认证16CFR1512和 UL 2849 随着道路变得更加拥挤&#xff0c;停车位的减少&#xff0c;骑自行车上班已成为一种不错的选择。它不仅为骑手提供体育锻炼&#xff0c;还为骑手提供了更为灵活的通勤&#xff0c;因此更加轻便的电动助力自行车应运而生。需求不断增长&…

信息检索与数据挖掘 | (三)容错式检索

文章目录 &#x1f4da;通配符查询&#x1f407;单个通配符查询&#x1f407;一般的通配符查询&#x1f407;k-gram 索引 &#x1f4da;拼写校正&#x1f407;词项独立的校正方法&#x1f955;编辑距离方法&#x1f955;k-gram重合度法 &#x1f407;上下文敏感的校正方法 &…

Excel实现只针对某项字符第一次出现的位置分列

取第一次出现左边数值 B1LEFT(A1,SEARCH(".",A1)-1) 取第一次出现右边数值 C1RIGHT(A1,LEN(A1)-SEARCH(".",A1)) 公式如图&#xff1a;