当前位置: 首页 > news >正文

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

Q:基于ARM A9处理器怎样设计C语言工程,同时使用按键中断和定时器中断在红色LED上计数?

A:基本原理:设置HPS Timer 0和按键中断源,主程序调用set_A9_IRQ_stack( )函数设置中断模式的ARM堆栈指针,然后调用config_GIC( )函数配置GIC将HPS Timer 0和按键产生的中断发送到ARM处理器,接着调用config_HPS_timer( )配置HPS Timer 0使其产生某个周期的中断,调用config_KEYs( )函数配置按键端口,最后调用enable_A9_interrupts( )函数使能中断。

image-20241128102801326

主程序执行一段无限循环,将全局变量count的值写入红色LED。在HPS Timer 0中断服务程序中,将变量count和run的值相加再赋值给count,其中,run的值为0或1。每次按下按键时,按键中断服务程序中的全局变量run的值在1和0之间切换。当run=0时,count的值保持不变,当run=1时,count的值每0.25s增加1。

image-20241128102956181

编译下载程序到DE1-SoC开发板上,可以看到红色LED上显示的计数值每隔0.25秒递增1,10个红色LED从全熄灭到全点亮状态循环显示,按下任意KEY[3:0]其中任意一个按键会停止计数,再次按下任意一个按键会继续计数。

http://www.lryc.cn/news/527826.html

相关文章:

  • linux下使用脚本实现对进程的内存占用自动化监测
  • 安宝特方案 | 智能培训:安宝特AR如何提升企业技能培训的效率与互动性
  • golang通过AutoMigrate方法自动创建table详解
  • 【信息系统项目管理师-选择真题】2013上半年综合知识答案和详解
  • 智能调度体系与自动驾驶技术优化运输配送效率的研究——兼论开源AI智能名片2+1链动模式S2B2C商城小程序的应用潜力
  • 【软件测试项目实战 】淘宝网:商品购买功能测试
  • [牛客]公交线路(dijkstra+链式前向星)
  • SpringAI 搭建智能体(二):搭建客服系统智能体
  • 豆包MarsCode:前缀和计算问题
  • 【16届蓝桥杯寒假刷题营】第2期DAY5
  • Python 合并 Excel 单元格
  • [EAI-023] FAST: Efficient Action Tokenization for Vision-Language-Action Models
  • 解锁微服务:五大进阶业务场景深度剖析
  • java入门笔记基础语法篇(4)
  • java语法学习
  • 装饰SpringMVC的适配器实现响应自动包装
  • 【Rust自学】15.4. Drop trait:告别手动清理,释放即安全
  • 【算法】【归并排序】AcWing 算法基础 788. 逆序对的数量
  • 一个局域网通过NAT访问另一个地址重叠的局域网(IP方式访问)
  • 05-机器学习-数据标注
  • LQ1052 Fibonacci斐波那契数列
  • AWTK 骨骼动画控件发布
  • 分库分表后如何进行join操作
  • arkui-x 前端布局编码模板
  • 宝塔面板SSL加密访问设置教程
  • c++ set/multiset 容器
  • 前部分知识复习02
  • 开发环境搭建-3:配置 JavaScript 开发环境 (fnm+ nodejs + pnpm + nrm)
  • kotlin内联函数——let,run,apply,also,with的区别
  • 【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置