ARM学习之KEY_ENT实验

ARM 按键实验 下面这个是没有使用中断功能的 #include "2410addr.h" #define LED1                (1 #define LED2                (1 #define LED3                (1 #defi 阅读详情
/***************************************************
Project: KEY按键中断实验
  Writer:  SHOW      
  Time:  2011/10/13 
  Hareware: 硬件平台:mini2440 , J-link.
      硬件连接:GPG0~EINT8,
  GPG3~EINT11,
  GPG5~EINT13,
  GPG6~EINT14。
  Direction:1.查询外部中断的方式控制对应的灯亮灭。
   2.需要设置的寄存器:GPBCON,GPGCON,SRCPND,INTMSK,INTPND,EXTINT1,EINTPEND,INTMASK。
   3.烧写程序过程中,经常跑飞,后来发现是没有对DebugReg进行设置,原来每个工程都需要设置。       
              
***************************************************/
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "def.h"

#include "mmu.h"

#include "Option.h"

#define LED1_OFF (1<<5)
#define LED2_OFF (1<<6)
#define LED3_OFF (1<<7)
#define LED4_OFF (1<<8)

void Delay1ms(int times);

void Init_LED(void);    
void __irq EintHandler(void);
void Init_Interrupt_Control(void);
//========================================================================
// 函数名称: 主函数
// 实现功能: 函数入口      
// 参数:     void 
// 返回值:   void
//========================================================================
void Main(void)  
{
Init_LED();                              //初始化LED。
        while(1); 

}

//========================================================================
// 函数名称: 外部中断初始化设置函数
// 实现功能: 对外部中断EINT的设置      
// 参数:     void 
// 返回值:   void
//========================================================================
void Init_Interrupt_Control(void)
{
rGPGCON |= (1<<1 | 1<<7 | 1<<11 | 1<<13); //设置按键对应的GPIO为EINT。
  rEXTINT1 = 0;                             //低电平触发。

rEINTPEND |= (1<<8  |1<<11 | 1<<13 | 1<<14);  //清中断挂起寄存器,写1则clear。
rEINTMASK &= ~(1<<8  | 1<<11 | 1<<13  |1<<14);//关掉中断屏蔽寄存器,使能中断。

ClearPending(BIT_EINT8_23);              // 清中断源挂起寄存器SRCPND与使能中断挂起寄存器INTPND防止有其他中断干扰。
  pISR_EINT8_23=(unsigned)EintHandler; //外部中断8_23中断服务子程序入口地址。pISR_EINT8_23在2440addr.h中有定义。
EnableIrq(BIT_EINT8_23);            // 关中断屏蔽寄存器INTMSK,使能中断。
}

//========================================================================
// 函数名称: 延时1ms子函数
// 实现功能: 延时      
// 参数:     times为延时的ms数。 
// 返回值:   void
//========================================================================
void Delay1ms(int times)
{
int i;
for( ;  times > 0; times-- )
for(i=400; i>0 ; i--);
}

//========================================================================
// 函数名称: IO口初始化子函数
// 实现功能: 初始化IO口 设置GPIO为输出口。     
// 参数:     void 
// 返回值:   void
//========================================================================
void Init_LED(void)
{
// rGPBCON = 0;  复位即为0可不用先给0。
rGPBCON |= (1<<10) | (1<<12) | (1<<14) | (1<<16); // 设置GPB5~GPB8 为输出口。
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);// 初始化熄灭。

}
//========================================================================
// 函数名称: 中断服务函数
// 实现功能: 判断是那个 外部中断,点亮对应的LED。__irp是中断服务函数标志必须有。    
// 参数:     void 
// 返回值:   void
//========================================================================
void __irq EintHandler(void)
{
    
if(rINTPND == BIT_EINT8_23)
{

ClearPending(BIT_EINT8_23);

if(rEINTPEND & (1<<8))
{
rGPBDAT &= ~LED1_OFF;
Delay1ms(1000);
rGPBDAT |= LED1_OFF;
rEINTPEND |= 1 << 8;
}
if(rEINTPEND & (1<<11))
{
rGPBDAT &= ~LED2_OFF;
Delay1ms(1000);
rGPBDAT |= LED2_OFF;
rEINTPEND |= 1 << 11;
}
if(rEINTPEND & (1<<13))
{
rGPBDAT &= ~LED3_OFF;
Delay1ms(1000);
rGPBDAT |= LED3_OFF;
rEINTPEND |=  1<< 13;
}
if(rEINTPEND & (1<<14))
{
rGPBDAT &= ~LED4_OFF;
Delay1ms(1000);
rGPBDAT |= LED4_OFF;
rEINTPEND |= 1 << 14;
}
}


}
ARM MINI2440 LED及KEY 实验(学习笔记) LED实验一 LED 驱动原理设置相应的控制寄存器和数据寄存器寄存器就可驱动LED灯通过mini2440原理手册 图(1)可以查到相应的寄存器和相应的对应位如 四个灯分别对应控制寄存器的5,6,7,8.  图(2)我们要把控制寄存器设置为output初始化为    0x15400 阅读详情

相关推荐

麒麟V10 ARM平台部署达梦数据库DM8实战指南

国产数据库达梦DM8在ARM架构操作系统上的部署,本质是跨指令集、ABI兼容性与安全机制的系统级适配问题。其核心在于理解AArch64指令集约束、glibc等关键系统库版本匹配原理,以及SELinux/AppArmor等安全策略对数据库运行时资源访问的限制逻辑。这一过程不仅关乎基础可用性,更直接影响信创环境下的等保三级合规性、国密SSL启用、审计日志完备性等技术价值。典型应用场景覆盖政务云、金融核心替代、能源工控系统等对自主可控要求严苛的领域。本文聚焦银河麒麟V10(ARM版)与达梦DM8.1.2.106的

weixin_34248705的博客 303

8.ARM-Key按键实验

ARM Key按键实验

qq_43314298的博客 252

熔岩灯如何成为互联网加密的熵源?解析LavaRand原理与DIY实验

随机数是加密体系的基石。无论是TLS握手生成临时密钥,还是证书签发与API Token,都需要不可预测的随机性。普通伪随机数生成器依赖种子,一旦被预测,整个加密体系就会崩溃。为此,系统通常采集鼠标、键盘等物理噪声作为熵源。而LavaRand项目另辟蹊径,用摄像头拍摄熔岩灯蜡滴的混沌流动画面,将其图像差异转换为高质量的物理熵源,再与系统CSPRNG混合,为密钥生成提供不可预测的随机性。本文拆解LavaRand的架构原理,并给出用OpenCV与Python复现的DIY方案,带你完整体验从物理熵源到数字随机数的链

weixin_30681121的博客 378

ARM函数封装实现KEY1,KEY2,KEY3按键打印

【代码】ARM函数封装实现KEY1,KEY2,KEY3按键打印。

Meng_fighting的博客 281

MuJoCo快速入门:面向强化学习与机器人仿真的高保真物理引擎实践

物理仿真引擎是连接强化学习算法与真实机器人系统的桥梁,其建模精度直接决定策略迁移能力。MuJoCo以约束求解为基础,支持毫米级接触力建模、可微分刚体动力学和软接触参数配置,显著优于PyBullet等低保真引擎。其XML模型定义机制将质量、惯性、摩擦、传感器等物理属性显式编码,使reward设计可基于真实力/加速度信号而非抽象指标;配合PPO等主流RL框架,能实现从仿真到实机部署的高效闭环验证。本文聚焦MuJoCo在机器人控制初学者场景中的‘开箱即用’路径,覆盖环境搭建、XML建模要点、observation

weixin_30432579的博客 624

达梦DM9跨Windows与Kylin平台升级实战指南

国产数据库升级本质是操作系统兼容性工程,达梦DM9从V8演进至模块化内核,带来ABI依赖、权限模型、JDBC协议栈等系统级变化。其升级不再仅涉及安装包替换,而需深度适配Windows的NTFS ACL与.NET运行时、Kylin的glibc版本与POSIX ACL,同时应对ARM64架构下DSC集群限制与TLS握手差异。技术价值体现在细粒度审计、NUMA感知内存管理及FGAC权限控制等能力跃迁,广泛应用于政务云信创替代、等保三级合规建设及多架构混合部署场景。本文聚焦达梦DM9在Windows Server与

weixin_34355559的博客 257

ARM Key 设备驱动代码

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34220623的博客 278

避坑指南:LAMMPS做GCMC模拟时,化学势mu和压力p到底怎么设?

本文详细解析了LAMMPS中巨正则蒙特卡洛(GCMC)模拟的关键参数设置,特别是化学势(mu)与压力(p)的正确计算方法。通过理论分析、实用公式和黄金法则,帮助用户避免常见误区,提升模拟精度和效率,适用于各类复杂体系的分子模拟研究。

weixin_42525289的博客 429

ARM2440板GPIO输入实验

因为考试周开始了,板子又没动大概1周时间,哎。。 今天连跑马灯一并复习了吧。。 LED的电路原理图在2440开发板底板的原理图能够找得着,如下灯是低电平亮,接上限流电阻后是与ENT4—ENT7相连,但EINT4—ENT7指得又是哪几个引脚呢?打开2440核心板的原理图 看到EINT4—EINT7其实对应的就是I/O口的F端口中的GPF4—GPF7,而在2440中F口

2826

基于cat12搞定SBM的ROI的统计分析——vertex水平和ROI水平的双样本T检验

前言 一、Atlas皮层图谱介绍 二、SBM分析——主要以皮层四种常用指标中的厚度(thickness)和沟深(depth)为主

Sophia2023的博客 8749

从零到一:RT-Thread与W5500的硬件抽象层设计哲学与实践启示

本文深入探讨了RT-Thread操作系统下W5500以太网模块的硬件抽象层(HAL)设计哲学与实践。通过GD32F103和STM32F103平台的适配案例,详细阐述了如何利用RT-Thread的驱动框架实现跨平台硬件无关性、模块化设计及配置定制,为嵌入式开发者提供了可复用的HAL设计方法论和实战经验。

7z8x2c4v6b9的博客 197

键盘接口和七段数码管的控制实验

一、实验目的 1. 学习4X4键盘的与CPU的接口原理 2. 掌握键盘芯片HD7279的使用,及8位数码管的显示方法; 二、实验内容 1. 通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。 三、实验设备 EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。 2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发...

qq_41171755的博客 6842

Dify 第 2 篇 Dify 插件离线安装

Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。

甘蓝的专栏 1263

HomeBox 家庭物品库存管理系统:Docker 快速部署、配置指南与源码架构解析

HomeBox 是一款专为家庭用户设计的库存与物品组织管理系统,核心卖点是“简单但可扩展”:无需复杂的初始化配置即可开箱使用,又能按需扩展数据库、存储与认证等基础设施。本文以仓库根目录的 [README.md](https://link.gitcode.com/i/d5ad707f5a925c746e512388baaf214f) 为骨架,结合后端 Go 源码与官方部署文档,系统讲解 HomeBo

gitblog_00164的博客 222

AEJoy —— 最受欢迎的 5 个 Ae 表达方式

NOTE] 原文作者我意识到表达式可能令人生畏,有些人宁愿复制粘贴有用的代码,而不愿学习这门语言。对此我完全理解。因此,我想与您分享我的。这些是我几乎在每个项目中都会使用的表达式,我认为它们极大地提升了工作流程。

ShaderJoy 的兴趣技术杂货铺 363

华为面试手撕真题【判断是ipv4还是ipv6地址】

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。

MISAYAONE的博客 1万+

大模型基础教材完整下载指南:8 份 PDF 拿全 + 阅读顺序一次讲透

《大模型基础》(Foundations-of-LLMs)是浙大团队开源的大语言模型教材,仓库里备齐 8 份 PDF:六章完整版、分章 6 份、英文草稿 1 份,外加论文列表和 Arxiv 周报两份配套。适合想系统入门大模型的新手。本文分四步带你走完:先盘点资源在哪,再按需求下载,然后 30 秒验货,最后给出阅读顺序。 ## 8 份 PDF 加 2 份配套,一张表全点清 📚 | 文件 | 大小

gitblog_01126的博客 230

车载网络测试实操源码_使用CAPL脚本实现安全访问解锁,并模拟各种测试场景

在车载诊断中,我们经常会使用到安全访问解锁,常见的场景包括软件刷写前、通过2E服务写入某个DID前、通过31服务执行某个例程前等,都必须先通过27服务进行安全访问,解锁相应安全等级后才能执行上述操作。在开发调试或测试时,有时候需要模拟正常的安全解锁、安全访问秘钥错误、连续多次请求安全访问等,手动操作极为不便。本文将介绍如何使用CAPL脚本实现安全访问解锁,并模拟各种测试场景。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1201

具身智能开发实战指南:从概念到代码的完整学习路径

具身智能作为人工智能与物理世界交互的前沿领域,其核心原理在于构建能够通过感知-行动闭环与环境互动的智能体。这一技术融合了机器人学、强化学习和多模态感知,旨在解决传统AI难以处理的动态物理任务。从技术价值看,它代表了AI从数字世界迈向物理操作的关键突破,在工业自动化、家庭服务、医疗辅助等场景具有广泛应用前景。当前,借助大语言模型(LLM)和机器人操作系统(ROS)等工具,开发者可以构建具备任务规划与环境交互能力的智能系统。本文聚焦具身智能的实践路径,通过PyBullet仿真环境与PPO算法示例,为开发者提供从

weixin_34221036的博客 512

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

亲爱的同学,毕设是不是让你既期待创新又担心技术门槛?如果你的毕设方向是计算机视觉、智能检测,那这个绝对能成为你的“毕设王牌”。从数据准备到界面开发,我会把整个项目拆成“傻瓜式”步骤,让你能一步步做出属于自己的毕设成果。

know_F0727的博客 104

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

关于_linux外部中断驱动异步通知应用程序

1,file 1,-> ent_test.c /* file ent_test.c Copyright by jiangdou QQ:344283973 RK3188 ENT test 20140902 how to compile: $ arm-linux-gnueabihf-gcc -o ent_test ENT_test.c -static */ #include <s...

weixin_44936219的博客 382

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

超强键盘编程工具QMK Firmware:支持600+键盘型号

还在为机械键盘功能受限而烦恼?想要完全掌控你的输入设备,实现个性化定制?QMK Firmware(Quantum Mechanical Keyboard Firmware)正是你需要的终极解决方案!这款开源键盘固件支持超过1000款键盘型号,让你彻底释放键盘的无限潜能。 ## ???? QMK Firmware是什么? QMK Firmware是一个基于tmk_keyboard的键盘固件,专为At...

gitblog_00141的博客 1094

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

云服务器熵不足导致随机数阻塞?haveged实战解决方案

在Linux系统中,/dev/random依赖内核熵池提供密码学安全的随机数,而熵(Entropy)本质是系统不可预测性的度量。虚拟化环境因缺乏物理噪声源(如键盘、磁盘中断),常导致熵池枯竭,引发OpenSSL、SSH、Docker等关键服务阻塞。haveged通过采集CPU微架构时序抖动(如分支预测失败、缓存未命中)生成高质量熵,无需硬件支持,兼容KVM/Xen/EC2等主流云平台。其核心价值在于填补虚拟机中被屏蔽的物理熵源,保障TLS握手、密钥生成等安全操作的低延迟与高可靠性,已成为云原生基础设施熵管理

weixin_30239339的博客 631

QMK固件:从零构建你的专属键盘操作系统

你是否曾想过,为什么键盘只能按照厂商预设的方式工作?为什么不能让F1键一键打开代码编辑器,让Caps Lock键变成第二层功能切换开关?QMK固件正是为打破这些限制而生——它不是简单的按键重映射工具,而是一个完整的键盘操作系统。 ## 键盘的"灵魂移植":从硬件到智能 传统键盘固件如同预装系统,功能固定且无法深度定制。QMK则像Linux内核,为键盘赋予了真正的"灵魂"。它基于[tmk_key

gitblog_01089的博客 641

QMK固件深度解析:3大核心技术解锁键盘无限定制潜能

QMK固件作为开源键盘固件的标杆,通过**硬件抽象层设计**、**多层键位映射系统**和**量子层功能扩展**三大核心技术,为机械键盘爱好者提供了前所未有的定制自由度。本文将深入剖析QMK的架构原理,并提供从基础配置到高级功能的实战手册,帮助开发者掌握这一强大的键盘定制工具。 ▌▌▌ 核心理念 ▌▌▌ ## 如何理解QMK的硬件抽象设计? QMK固件的核心优势在于其**硬件抽象层(HAL)设

gitblog_00209的博客 1117

QMK 固件实战:从矩阵扫描到自定义键位一次搞懂

你试过让一颗按键干三件事吗?轻点发 ESC,快点两次发大小写锁定,长按又是 Ctrl——用 QMK(Quantum Mechanical Keyboard)这个支持 Atmel AVR 和 ARM 芯片的开源键盘固件,这一切都写得出、刷得进,而且核心逻辑就在仓库里摊开给你看。 ## 5 分钟编译出你的第一份键盘固件 先别急着改代码,把现成固件跑通,拿到正反馈: 1. 安装 QMK CLI(W

gitblog_00892的博客 794
上一篇: ARM学习之触摸屏实验
下一篇: ARM学习之GPIO实验
Linuxxulin
博客等级 码龄16年 41粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值