第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。

相关推荐
aramae6 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
无敌贵点大王7 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1017 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
Escalating_xu11 小时前
【C 语言项目】数组和函数综合实践:从零实现控制台扫雷游戏
c语言
JoYER_cc12 小时前
FPGA 调试实录:LED 闪烁程序从踩坑到仿真验证的完整经验总结
fpga开发
ktd00714 小时前
复旦微开发环境搭建流程备忘录
fpga开发
ERROR:9914 小时前
陈工,试试Agent开发FPGA
fpga开发
Navigator_Z15 小时前
LeetCode //C - 1254. Number of Closed Islands
c语言·算法·leetcode
Logic10116 小时前
C语言/数据结构滑动窗口题解:替换k个字符后的最长连续相同字符子串(LeetCode 424)
c语言·数据结构·字符串·滑动窗口·时间复杂度·频率统计·算法题
free-elcmacom17 小时前
发际线警告!手撕《C陷阱与缺陷》终极 BOSS:signal 函数与 typedef 魔法
c语言·开发语言·visual studio code·visual studio