单片机TM4C123学习(二):中断与按键控制
1.按键初始化
按键K1——PD7
按键K2——PF4
按键K3——PA3
按键K4——PA2
//// key1 init// SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);已经在LED init写过了,不然也是要写的 GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_7);
也就是说,按键初始化只需要(外部设备使能和)设置管脚类型为输入两个步骤。
2.中断使能
三个步骤:设置端口中断类型,使能端口中断,为端口注册一个中断处理句柄
//// interrupt enable--key1// GPIOIntTypeSet(GPIO_PORTD_BASE,GPIO_PIN_7,GPIO_FALLING_EDGE); //设置PD7中断类型为下降沿触发GPIOIntEnable(GPIO_PORTD_BASE,GPIO_PIN_7); //使能PF4中断GPIOIntRegister(GPIO_PORTD_BASE, Key1IntHandler); //为PF4注册一个中断处理句柄
void Key1IntHandler(){GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,0<<6);//红灯亮GPIOIntClear(GPIO_PORTD_BASE,GPIO_INT_PIN_7);//清除key1}
特别注意的是,中断处理句柄中最后要清除按键状态,表示这个中断已经处理完毕
void Key34IntHandler(){uint32_t IntStatus_raw;IntStatus_raw = GPIOIntStatus( GPIO_PORTA_BASE, 0); //读GPIORIS寄存器if(IntStatus_raw & GPIO_INT_PIN_3) // PA3引脚有中断事件 {GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);//蓝灯亮GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_3);//清除key3 }if(IntStatus_raw & GPIO_INT_PIN_2) // PA2引脚有中断事件 {GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,1<<6);//灭灯GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);//灭灯GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);//灭灯GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_2);//清除key4 }}
一个模块需要共用一个中断入口,所以按键3和4需要合在一起写
转载于:https://www.cnblogs.com/pursuit1996/p/4912520.html
单片机TM4C123学习(二):中断与按键控制相关推荐
- K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停
目录 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 大功率MOS模块驱动 对应程序: 四.部分代码说明 接线说明 STC89C52RC+大功率MOS模块 STM32F103C8T6+大功率 ...
- 51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零
51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零 题目要求: 利用外部中断实现按键按一下数码管数字加1,实现00-99的循环,另一个按键实现清零,不管数码管数字是多 ...
- 51单片机中断--一个按键控制一个led的亮与灭
#include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; sbit LED1=P2^0; sbi ...
- cc2530 按键中断实验——按键控制LED灯的亮灭
在本次学习中,主要通过外部中断来控制LED的亮灭. 首先,先查看相关电路图.由图可知,当CC2530端口1的1号引脚输出低电平时,LED3将被点亮,当按键31按下时,端口1的1号引脚将为低电平,抬起时 ...
- CC2530的中断操作----按键控制led灯亮灭
中断使能主要有四个步骤: (1)使.EA 位为 1,开中断. (2)设置寄存器 IEN0.IEN1和IEN2中相应中断使能位为1. (3)如果需要,则设置P0.P1.P2各引脚对应的各中断使能位为1. ...
- Arduino学习笔记-新的按键控制方式
目录 基本概念 运行与操作 基本概念 这里按下按钮,LED灯,就亮,再按,LED就熄灭. 这里有2个宏要注意: INPUT为普通的输入,一般用这个要用下拉电阻,来操作. 而这个宏INPUT_PULLU ...
- 03独立按键控制LED移动
51单片机学习记录04 一.独立按键控制LED单向移动 单项右移 单项左移 二.独立按键控制LED移动 总结 一.独立按键控制LED单向移动 代码分为两个部分:"主函数"+&quo ...
- 《蓝桥杯CT107D单片机竞赛板》:独立按键模块
独立按键模块 实验简介 实验原理图 实验原理 实验程序 按下独立键盘上每一个键,对应LED状态取反 按键值在数码管上显示 S4长按显示4,短按显示0,其他显示原来的键值 实验简介 CT107D单片机开 ...
- 51单片机入门学习篇-led灯、按键、数码管、中断
文章目录 前言 一.Proteus仿真 二.Keil代码编写 1.流水灯 2.来回点灯 3.按键操作 4.中断操作 5.数码管 6 动态数码管 三. 练习题 总结 前言 本文用来记录博主学习单片机的过 ...
- 51单片机按键控制数码管0~9_51单片机外部中断
前面为大家介绍的点亮LED灯.数码管.按键只用到了51单片机的IO资源,我们要是仅仅用单片机点灯.操作数码管,那可真是大才小用了.这些都只是51单片机资源的冰山一角,51单片机还有好多的功能,我后面将 ...
最新文章
- 京东某员工因加班太多引女友不满,下定决心离职:不想被迫加班!
- IDEA快捷键(修改成eclipse版)+Templates
- 常见数学符号:等号、不等号、算术运算符号、几何符号、三角函数、指数、对数、微分、积分符号、集合符号、逻辑符号
- Py之nltk:nltk包的简介、安装、使用方法、代码实现之详细攻略
- javascript规范以及设计原则
- 微软Azure AspNetCore微服务实战第2期(内附PPT下载)
- 如何解决IE6双边距问题?
- 汽车距离报警系统c语言编程,基于单片机的超声波汽车报警系统的设计
- Oracle修改实例名SID
- 8.6 归纳式迁移学习
- Android setOnPageChangeListener 过时解决
- apache 支持.htaccess 解决Internal Server Error The server 错误
- BackgroundWorker使用总结
- Unity 导入原神人物模型
- AI读书笔记:《剑桥五重奏—机器能思考吗?》
- matlab 贪吃的蛇,贪吃的蛇教案
- 前端常用属性知识点--文档
- Qt音视频开发27-Onvif设备搜索
- JRebel has expired Jrebel过期解决!!
- 机器人自动化中的通讯手段
热门文章
- 【cf-edu-round72: C 】The Number Of Good Substrings(思维)
- java 邮箱的代接收服务_Java开源网络验证系统专门为中小企业提供-verify
- 查看AWS中Identity and Access Management(IAM)的Access Key和Secret Access
- 农村三资管理平台app_古劳农村“三资”管理规范化、系统化、数字化引来江门日报关注报道...
- oracle数据库创建检查点,Oracle数据库通过检查点和RBA信息确定恢复范围
- 轻量级神经网络ShuffleNet
- 168.Excel表列名称
- RMSProp均方根反向传播法
- 在构造函数中释放对象本身
- 求一个容器的最值的索引_初中几何最值——瓜豆原理模型分析