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

第17篇 使用数码管实现计数器___ARM汇编语言程序<四>

Q:如何使用定时器实现数码管循环计数器?

A:DE1-SoC_Computer系统有许多硬件定时器,本次实验使用A9 Private Timer定时器实现延时:定时器首先向Load寄存器写入计数值,然后向Control寄存器中的使能位E写1来启动定时器。定时器以Load寄存器中的初始计数值开始计数,以200MHz的频率将该计数值递减到0。如果Control寄存器中的A位被置1,则定时器会自动加载Load寄存器中的计数值并重新开始计数,当计数值减为0时,定时器会将Interrupt status寄存器中的F位置1,编写程序轮询F位,使得A9处理器等待定时器完成计数。可向F位写1使其复位。

image-20240926162231193

两个16位的Counter start value寄存器用于修改定时器的定时周期。本实验中需要实现250ms即也是0.25s的延时,其对应的预设计数值为200MHz × 250 ms= 50 × 106,比之前我们用延迟循环实现的0.25s延时更精准。部分汇编语言程序代码:

image-20240926163647463

同样是在HEX1~HEX0上实现十进制计数器,从0开始每0.25秒递增1计数直到99,再从0开始重新计数;按下任意KEY,计数器会停止或开始计数。


http://www.kler.cn/a/461176.html

相关文章:

  • NLP 中文拼写检测纠正论文-07-NLPTEA-2020中文语法错误诊断共享任务概述
  • Vue3 子组件向父组件传递消息(Events)
  • C++ —— 模板类扩展
  • VMware去虚拟化
  • 深入浅出:Spring Boot 自定义消息转换器的实现与应用
  • 数据挖掘——模型的评价
  • cad学习 day12客餐厅立面
  • 金融租赁系统助力企业转型与市场竞争力提升
  • 如何通过HTTP API更新Doc
  • 区块链技术在电商API接口中的应用探索与前景分析
  • 17000.机器学习-数字1-9实例
  • WPF使用OpenCvSharp4
  • 矩阵的因子分解2-满秩分解
  • PHP+Redis的基本操作方法
  • 动态吸震器在汽车降噪中的创新应用——电磁正反馈调节系统
  • 【机器学习篇】从新手探寻到算法初窥:数据智慧的开启之门
  • sql特殊查询记录
  • uniapp - 小程序实现摄像头拍照 + 水印绘制 + 反转摄像头 + 拍之前显示时间+地点 + 图片上传到阿里云服务器
  • 线性代数期末复习 [基础篇]
  • Three.js教程004:坐标辅助器与轨道控制器
  • <Uniswap v3 数学洞察>笔记(part 2)
  • 【CSS in Depth 2 精译_099】17.5:基于页面滚动的动画时间线设置(全新)+ 17.6:最后一点建议 + 17.7:本章小结
  • TreeMap
  • 如何使用C#与SQL Server数据库进行交互
  • 【每日学点鸿蒙知识】深色模式、Webview查看版本、window设置亮度、List缓存节点更新、预编译JS
  • 1panel fail2ban助力服务器SSH以及删除SSH登陆日志