第26篇 基于ARM A9处理器用C语言实现中断<二>

Q:基于ARM A9处理器怎样编写C语言工程,使用按键中断将数字显示在七段数码管上呢?

**A:**基本原理:主程序需要首先调用子程序set_A9_IRQ_stack()初始化IRQ模式的ARM A9堆栈指针;然后主程序调用子程序config_GIC()初始化通用中断控制器(GIC)以及config_KEYs()初始化按键端口来产生中断。最后调用子程序enable_A9_interrupts()取消屏蔽ARM处理器中的IRQ中断;初始化步骤完成之后,主程序在无限循环中被挂起。

另外创建interrupt_ID.h、exceptions.c、pushbutton_ISR.c以及defines.h代码程序,并将exceptions.c和pushbutton_ISR.c添加到工程中。

编译下载程序到DE1-SoC开发板上:按下KEY0 后,HEX0 上会显示数字0;再按一次KEY0HEX0显示为空白;按KEY1、KEY2和KEY3会显示数字1、2、3。

相关推荐
小魏每天都学习1 小时前
【算法——c/c++]
c语言·c++·算法
智码未来学堂2 小时前
探秘 C 语言算法之枚举:解锁解题新思路
c语言·数据结构·算法
彷徨而立4 小时前
【C/C++】strerror、GetLastError 和 errno 的含义和区别?
c语言·c++
代码无bug抓狂人5 小时前
动态规划(附带入门例题)
c语言·算法·动态规划
恶魔泡泡糖6 小时前
51单片机串口通信
c语言·单片机·嵌入式硬件·51单片机
知无不研7 小时前
c语言动态内存规划
c语言·动态内存管理·内存泄露·基础知识·malloc·realloc·calloc
3108748768 小时前
0005.C/C++学习笔记5
c语言·c++·学习
历程里程碑9 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
JiL 奥9 小时前
Nexus制品归档(c/c++项目)
c语言·c++
梵刹古音9 小时前
【C语言】 字符型变量
c语言·开发语言·嵌入式