5.外部中断
中断初始化配置步骤:
IO口初始化配置
开启中断总允许EA
打开某个IO口的中断允许
打开IO口的某一位的中断允许
配置该位的中断触发方式
中断函数:
#pragma vector = PxINT_VECTOR __interrupt void 函数名(void){}#pragma vector = PxINT_VECTOR
__interrupt void 函数名(void){}

中断配置寄存器
IENx中断使能寄存器



如果使能P0口中断,可直接使用
P0IE = 1,但是使能P1/P2口中断,不能直接对单独的某一位进行操作,需要进行或操作开启,如IEN2 |= 0x10; // 0001 0000 相当于P1IE=1
PxIEN 通用 I/O 中断
通用 I/O 引脚设置为输入后,可以用于产生中断。中断可以设置在外部信号的上升或下降沿触发。P0、P1或 P2 端口都有中断使能位

PICTL 中断边缘寄存器

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

IO口中断状态标志


中断服务函数
#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 1111P0DIR &= ~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)无线连接。
相关文章:
5.外部中断
中断初始化配置步骤: IO口初始化配置 开启中断总允许EA 打开某个IO口的中断允许 打开IO口的某一位的中断允许 配置该位的中断触发方式 中断函数: #pragma vector PxINT_VECTOR __interrupt void 函数名(void){}#pragma vector PxINT_VECTOR __int…...
Mydb数据库问题
1、请简要介绍一下这个基于 Java 的简易数据库管理系统。它的主要功能是什么? TM(Transaction Manager):事务管理器,用于维护事务的状态,并提供接口供其他模块查询某个事务的状态。DM(Data Man…...
部署并应用ByteTrack实现目标跟踪
尽管YOLOv8已经集成了ByteTrack算法,但在这里我还是想利用ByteTrack官网的代码,自己实现目标跟踪。 要想应用ByteTrack算法,首先就要从ByteTrack官网上下载并安装。虽然官网上介绍得很简单,只需要区区6行代码,但对于国…...
MacOS怎么配置JDK环境变量
1 输入命令看是否配置了JDk 的环境变量:echo $JAVA_HOME 要是什么也没输出 证明是没配置 2 输入命令编辑 sudo vim ~/.bash_profile 然后按 i ,进入编辑模式,粘贴下面的代码,注意:JAVA_HOME后面路径需要改成自己的版…...
Spring Boot 开发16个实用的技巧
当涉及到使用Spring Boot开发应用程序时,以下是16个实用的技巧: 1. **使用Spring Initializr**:Spring Initializr是一个快速创建Spring Boot项目的工具,可以帮助您选择项目依赖和生成项目骨架。 2. **自动配置**:Sp…...
《机器学习实战》学习记录-ch2
PS: 个人笔记,建议不看 原书资料:https://github.com/ageron/handson-ml2 2.1数据获取 import pandas as pd data pd.read_csv(r"C:\Users\cyan\Desktop\AI\ML\handson-ml2\datasets\housing\housing.csv")data.head() data.info()<clas…...
lv7 嵌入式开发-网络编程开发 07 TCP服务器实现
目录 1 函数介绍 1.1 socket函数 与 通信域 1.2 bind函数 与 通信结构体 1.3 listen函数 与 accept函数 2 TCP服务端代码实现 3 TCP客户端代码实现 4 代码优化 5 练习 1 函数介绍 其中read、write、close在IO中已经介绍过,只需了解socket、bind、listen、acc…...
mysql技术文档--阿里巴巴java准则《Mysql数据库建表规约》--结合阿丹理解尝试解读--国庆开卷
阿丹: 国庆快乐呀大家! 在项目开始前一个好的设计、一个健康的表关系,不仅会让开发变的有趣舒服,也会在后期的维护和升级迭代中让系统不断的成长。那么今天就认识和解读一下阿里的准则!! 建表规约 表达是…...
Qt+openCV学习笔记(十六)Qt6.6.0rc+openCV4.8.1+emsdk3.1.37编译静态库
前言: 有段时间没来写文章了,趁编译库的空闲,再写一篇记录文档 WebAssembly的发展逐渐成熟,即便不了解相关技术,web前端也在不经意中使用了相关技术的库,本篇文档记录下如何编译WebAssembly版本的openCV&…...
JUC第十四讲:JUC锁: ReentrantReadWriteLock详解
JUC第十四讲:JUC锁: ReentrantReadWriteLock详解 本文是JUC第十四讲:JUC锁 - ReentrantReadWriteLock详解。ReentrantReadWriteLock表示可重入读写锁,ReentrantReadWriteLock中包含了两种锁,读锁ReadLock和写锁WriteLockÿ…...
在vue3中使用vite-svg-loader插件
vite-svg-loader插件可以让我们像使用vue组件那样使用svg图,使用起来超级方便。 安装 npm install vite-svg-loader --save-dev使用 import svgLoader from vite-svg-loaderexport default defineConfig({plugins: [vue(), svgLoader()] })组件里使用 在路径后加…...
国庆10.4
QT实现TCP服务器客户端 服务器 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器头文件 #include <QTcpSocket> //客户端头文件 #include <QList> //链表容器 #include <QMe…...
2023/8/12 下午8:41:46 树状控件guilite
2023/8/12 下午8:41:46 树状控件guilite 2023/8/12 下午8:42:08 树状控件(Tree View)是一种常见的图形用户界面(GUI)元素,它通常用于显示层次结构数据或文件系统的目录结构。Guilite 是一个轻量级的跨平台 GUI 库,支持多种控件,包括树状控件。 在 Guilite 中使用树状…...
BL808学习日志-2-LVGL for M0 and D0
一、lvgl测试环境 对拿到的M1S_DOCK开发板进行开发板测试,博流的官方SDK是支持M0和D0两个内核都进行测试的;但是目前只实现了M0的LVGLBenchmark,测试D0内核中发现很多莫名其妙的问题。一会详细记录。 使用的是开发板自带的SPI显示屏ÿ…...
treectrl类封装 2023/8/13 下午4:07:35
2023/8/13 下午4:07:35 treectrl类封装 2023/8/13 下午4:07:53 TreeCtrl 类是一个常用的图形用户界面控件,用于实现树形结构的展示和交互。以下是一个简单的 TreeCtrl 类的封装示例: python import wxclass MyTreeCtrl(wx.TreeCtrl):def __init__(self, parent):super()…...
Android学习之路(20) 进程间通信
IPC IPC为 (Inter-Process Communication) 缩写,称为进程间通信或跨进程通信,指两个进程间进行数据交换的过程。安卓中主要采用 Binder 进行进程间通信,当然也支持其他 IPC 方式,如:管道,Socket࿰…...
机器学习——KNN算法流程详解(以iris为例)
、 目 录 前情说明 问题陈述 数据说明 KNN算法流程概述 代码实现 运行结果 基于可视化的改进 可视化代码 全部数据可视化总览 分类投票结果 改进后最终代码 前情说明 本书基于《特征工程入门与入门与实践》庄家盛 译版P53页K最近邻(KNN)算…...
国庆假期day5
作业:请写出七层模型及每一层的功能,请绘制三次握手四次挥手的流程图 1.OSI七层模型: 应用层--------提供函 表示层--------表密缩 会话层--------会话 传输层--------进程的接收和发送 网络层--------寻主机 数据链路层----相邻节点的可靠传…...
ES6中的let、const
let ES6中新增了let命令,用来声明变量,和var类似但是也有一定的区别 1. 块级作用域 只能在当前作用域内使用,各个作用域不能互相使用,否则会报错。 {let a 1;var b 1; } console.log(a); // 会报错 console.log(b); // 1为什…...
Python 列表操作指南3
示例,将新列表中的所有值设置为 ‘hello’: newlist [hello for x in fruits]表达式还可以包含条件,不像筛选器那样,而是作为操纵结果的一种方式: 示例,返回 “orange” 而不是 “banana”: …...
热成像与计算机视觉融合:打造免提可穿戴交互新范式
1. 项目概述:从一次“意外”到可穿戴交互新范式 在实验室里摆弄新到的热成像相机,这原本只是一个打发时间的“快乐意外”。我的咖啡杯、显示器,甚至是我自己的脸,在热成像镜头下都呈现出有趣的温度图案。但真正让我停下手中咖啡的…...
从栅格到矢量:基于ArcScan的河道中心线智能提取与精度优化实践
1. 从栅格到矢量的技术背景 河道中心线提取是水文分析中的基础性工作。传统人工勾绘方式效率低下,一条10公里长的河道可能需要耗费专业人员半天时间。而基于ArcScan的自动化提取方法,能将这个时间缩短到10分钟以内,同时保证亚米级精度。 我在…...
技术深度解析:5大核心要点掌握Sunshine开源游戏串流服务器实战部署
技术深度解析:5大核心要点掌握Sunshine开源游戏串流服务器实战部署 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款功能强大的自托管开源游戏串流服务器…...
PyQt6 GUI开发实战:构建现代化桌面应用的架构设计指南
PyQt6 GUI开发实战:构建现代化桌面应用的架构设计指南 【免费下载链接】PyQt-Chinese-tutorial PyQt6中文教程 项目地址: https://gitcode.com/gh_mirrors/py/PyQt-Chinese-tutorial 在当今软件开发领域,桌面应用依然占据着重要地位,特…...
凌扬微优势代理 LY3206S / LY3206L 多模式电机驱动芯片 SOP8 技术解析
在剃须刀、理发剪、毛球修剪器等便携式马达产品中,需要一款集成锂电池充电管理、电机驱动、多种档位模式(1/2/3档)以及使能控制的芯片,以简化电路设计并满足不同产品需求。LY3206是一款集成了锂电池充电管理模块、电机驱动模块、续…...
数据结构实战:用C语言链表手搓多项式加法,附赠PTA 6-3题全测试点解析
数据结构实战:用C语言链表手搓多项式加法,附赠PTA 6-3题全测试点解析 链表操作是数据结构课程的核心技能之一,而多项式加法则是检验这项能力的经典考题。无论是PTA、PAT还是LeetCode,这类题目都频繁出现。本文将带你从零开始&…...
别再手动查字典了!用EggNOG-mapper 5.0一键搞定GO/KEGG/COG注释(附完整流程)
基因功能注释自动化:EggNOG-mapper 5.0实战指南 在基因组学研究中,功能注释是连接序列数据与生物学意义的关键桥梁。传统的手动注释流程往往需要研究人员在多数据库间反复切换,不仅耗时费力,还容易引入人为误差。而EggNOG-mapper…...
Cortex-R52处理器不可预测行为解析与安全设计
1. Cortex-R52处理器不可预测行为深度解析在嵌入式实时系统开发领域,处理器行为的确定性直接关系到系统的可靠性。Arm Cortex-R52作为面向功能安全应用的实时处理器,其对架构规范中"不可预测行为(UNPREDICTABLE Behaviors)"的实现方式颇具特色…...
Gemini3.1Pro:商业分析框架搭建神器
做咨询的人都知道,真正难的从来不是“找到信息”,而是“把信息组织成框架”。 很多商业分析问题看起来复杂,本质上都是在有限时间内,把零散材料整理成一个能支撑判断的逻辑结构。如果你经常做行业分析、竞品分析、市场调研、经营诊…...
基于TEA加密的QQ号码逆向查询技术实现
基于TEA加密的QQ号码逆向查询技术实现 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字身份管理领域,用户经常面临忘记QQ号码但记得绑定手机号的情况。传统找回方式依赖官方验证流程,耗时较长且操作复杂…...
