arm:day4

1. 实现三盏灯的点亮

.text 
.global _start

_start: 
	@ led1初始化函数
    LED_INIT:
        @ 1 通过RCC_AHB4_ENSETR寄存器,设置GPIOE F组控制器使能 0x50000A28[5:4]=1
		ldr r0,=0X50000A28
		ldr r1,[r0]
		orr r1,r1,#(0X3<<4)
		str r1,[r0]

		@ 2.1 通过GPIOE_MODER寄存器,设置PE10引脚为输出模式 0x50006000[21:20]=01
		ldr r0,=0X50006000
		ldr r1,[r0]
		bic r1,r1,#(0X3<<20)
		orr r1,r1,#(0X1<<20)
		str r1,[r0]
        @ 2.2 通过GPIOE_MODER寄存器,设置PF10引脚为输出模式 0x50007000[21:20]=01
		ldr r0,=0X50007000
		ldr r1,[r0]
		bic r1,r1,#(0X3<<20)
		orr r1,r1,#(0X1<<20)
		str r1,[r0]
        @ 2.3 通过GPIOE_MODER寄存器,设置PE8引脚为输出模式 0x50006000[17:16]=01
		ldr r0,=0X50006000
		ldr r1,[r0]
		bic r1,r1,#(0X3<<16)
		orr r1,r1,#(0X1<<16)
		str r1,[r0]

        @ 3.1 通过GPIOE_OTYPER寄存器,设置PE10引脚为推挽输出模式 0x50006004[10]=0
		ldr r0,=0X50006004
		ldr r1,[r0]
		bic r1,r1,#(0X1<<10)
		str r1,[r0]
        @ 3.2 通过GPIOE_OTYPER寄存器,设置PF10引脚为推挽输出模式 0x50006004[10]=0
		ldr r0,=0X50007004
		ldr r1,[r0]
		bic r1,r1,#(0X1<<10)
		str r1,[r0]
        @ 3.3 通过GPIOE_OTYPER寄存器,设置PE8引脚为推挽输出模式 0x50006004[8]=0
		ldr r0,=0X50006004
		ldr r1,[r0]
		bic r1,r1,#(0X1<<8)
		str r1,[r0]

        @ 4.1 通过GPIOE_OSPEEDR寄存器,设置PE10引脚为低速输出 0x50006008[21:20]=00
		ldr r0,=0X50006008
		ldr r1,[r0]
		bic r1,r1,#(0X3<<20)
		str r1,[r0]
        @ 4.2 通过GPIOE_OSPEEDR寄存器,设置PE10引脚为低速输出 0x50007008[21:20]=00
		ldr r0,=0X50007008
		ldr r1,[r0]
		bic r1,r1,#(0X3<<20)
		str r1,[r0]
        @ 4.3 通过GPIOE_OSPEEDR寄存器,设置PE10引脚为低速输出 0x50006008[17:16]=00
		ldr r0,=0X50006008
		ldr r1,[r0]
		bic r1,r1,#(0X3<<16)
		str r1,[r0]

        @ 5.1 通过GPIOE_PUPDR寄存器,设置PE10引脚禁止上下拉电阻 0x5000600c[21:20]=00
		ldr r0,=0X5000600C
		ldr r1,[r0]
		bic r1,r1,#(0X3<<20)
		str r1,[r0]
        @ 5.2 通过GPIOE_PUPDR寄存器,设置PE10引脚禁止上下拉电阻 0x5000700c[21:20]=00
		ldr r0,=0X5000700C
		ldr r1,[r0]
		bic r1,r1,#(0X3<<20)
		str r1,[r0]
        @ 5.3 通过GPIOE_PUPDR寄存器,设置PE10引脚禁止上下拉电阻 0x5000600c[17:16]=00
		ldr r0,=0X5000600C
		ldr r1,[r0]
		bic r1,r1,#(0X3<<16)
		str r1,[r0]


	/**********流水灯**********/

	ldr r0,=0x50006014
	ldr r2,=0x50007014 

	loop:
		@ 1亮23灭	
		ldr r1,[r0]
		orr r1,r1,#(0X1<<10)
		str r1,[r0]
		ldr r1,[r2]
		bic r1,r1,#(0X1<<10)
		str r1,[r2]
		ldr r1,[r0]
		bic r1,r1,#(0X1<<8)
		str r1,[r0]
		bl delay_1s

		@ 2亮13灭 
		ldr r1,[r0]
		bic r1,r1,#(0X1<<10)
		str r1,[r0]
		ldr r1,[r2]
		orr r1,r1,#(0X1<<10)
		str r1,[r2]
		ldr r1,[r0]
		bic r1,r1,#(0X1<<8)
		str r1,[r0]
		bl delay_1s

		@ 3亮12灭
		ldr r1,[r0]
		bic r1,r1,#(0X1<<10)
		str r1,[r0]
		ldr r1,[r2]
		bic r1,r1,#(0X1<<10)
		str r1,[r2]
		ldr r1,[r0]
		orr r1,r1,#(0X1<<8)
		str r1,[r0]
		bl delay_1s

	
	b loop @ 跳转到loop,实现循环


	@ 大概1s的延时函数
	delay_1s:
		mov r3,#0x10000000
		mm:
			cmp r3, #0
			subne r3, r3, #1
			bne mm
			mov pc, lr
.end

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/81806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg5.0源码阅读——VideoToobox硬件解码

摘要&#xff1a;本文描述了FFmpeg中videotoobox解码器如何进行解码工作&#xff0c;如何将一个编码的码流解码为最终的裸流。   关键字&#xff1a;videotoobox,decoder,ffmpeg   VideoToolbox 是一个低级框架&#xff0c;提供对硬件编码器和解码器的直接访问。 它提供视频…

RabbitMq-2安装与配置

Rabbitmq的安装 1.上传资源 注意&#xff1a;rabbitmq的版本必须与erlang编译器的版本适配 2.安装依赖环境 //打开虚拟机 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz3.安装erlan…

第3天----在一行句子中寻找最长最短单词

今天我们将学习如何在一行句子中寻找(第一次出现的)最长最短单词。本节内容会或多或少地利用到第一讲/第二讲的知识点&#xff0c;需要的同学可以先去看看前面的内容。 一、小试牛刀&#xff1a; 题目描述 输入 1 行句子&#xff08;不多于 200 个单词&#xff0c;每个单词长度…

Spring学习笔记+SpringMvc+SpringBoot学习笔记

壹、核心概念&#xff1a; 1.1. IOC和DI IOC&#xff08;Inversion of Control&#xff09;控制反转&#xff1a;对象的创建控制权由程序转移到外部&#xff0c;这种思想称为控制反转。/使用对象时&#xff0c;由主动new产生对象转换为由外部提供对象&#xff0c;此过程种对象…

[四次挥手]TCP四次挥手握手由入门到精通(知识精讲)

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

人工智能与云计算实训室建设方案

一、 人工智能与云计算系统概述 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一种模拟人类智能的科学和工程&#xff0c;通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域&#xff0c;包括机器学习、深度学习、自然…

mysql的两张表left join 进行关联后,索引进行优化案例

一 mysql的案例 1.1 不加索引情况 1.表1没加索引 2.表2没加索引 3.查看索引 1.2 添加索引 1.表1添加索引 2.表2添加索引 3.查看

使用navicat连接postgresql报错问题解决

使用navicat连接postgresql报错问题解决 一、问题现象&#xff1a; 最近使用Navicat来连接postgreSQL数据库&#xff0c;发现连接不上&#xff0c;报错信息如下&#xff1a; 自己百度了一下&#xff0c;发现pgsql 15版本以后&#xff0c;有些系统表的列名改了&#xff0c;pg_…

一文科普,配资门户网是什么?

配资门户网是一个为投资者提供配资服务的平台。配资是指通过借用他人资金进行投资交易的一种金融操作方式。配资门户网作为一个线上平台&#xff0c;为投资者提供了方便、快捷的配资服务。 配资门户网提供了多种不同的配资方案&#xff0c;以满足不同投资者的需求。投资者可以…

录制游戏视频的软件有哪些?分享3款软件!

“有录制游戏视频的软件推荐吗&#xff1f;最近迷上了网游&#xff0c;想录制点自己高端操作的游戏画面&#xff0c;但是不知道用什么软件录屏比较好&#xff0c;就想问问大家&#xff0c;有没有好用的录制游戏视频软件。” 在游戏领域&#xff0c;玩家们喜欢通过录制游戏视频…

根据源码,模拟实现 RabbitMQ - 实现消息持久化,统一硬盘操作(3)

目录 一、实现消息持久化 1.1、消息的存储设定 1.1.1、存储方式 1.1.2、存储格式约定 1.1.3、queue_data.txt 文件内容 1.1.4、queue_stat.txt 文件内容 1.2、实现 MessageFileManager 类 1.2.1、设计目录结构和文件格式 1.2.2、实现消息的写入 1.2.3、实现消息的删除…

HCIP实验之MPLS

目录 一&#xff0c;实验题目 ​编辑 拓扑与IP地址规划如图所示 二&#xff0c;实验思路 三&#xff0c;实验步骤 3.1 私网部分IP地址配置 3.2 LSP部分配置 3.3 启动OSPF协议 3.4 启动MPLS协议 3.5 启动MPLS VPN 3.6 实现公网私网互通 3.7 配置BGP 3.8 双向重发布 …

常见的 Python 错误及其解决方案

此文整理了一些常见的 Python 错误及其解决方案。 1、SyntaxError: invalid syntax 说明&#xff1a;无效的语法是最常见的错误之一&#xff0c;通常是由于编写代码时违反了 Python 的语法规则。可能的原因&#xff1a; 忘记在 if、while、for 等语句后写冒号&#xff0c;或者…

我和 TiDB 的故事 | 远近高低各不同

作者&#xff1a; ShawnYan 原文来源&#xff1a; https://tidb.net/blog/b41a02e6 Hi, TiDB, Again! 书接上回&#xff0c; 《我和 TiDB 的故事 | 横看成岭侧成峰》 &#xff0c;一年时光如白驹过隙&#xff0c;这一年我好似在 TiDB 上投入的时间总量不是很多&#xff0…

vite打包配置以及性能优化

vite打包配置以及性能优化 安装插件 首先该安装的插件&#xff0c;你要安装一下吧 这三个是基本的插件&#xff0c;其他优化的插件下面会介绍到 "vite": "4.4.6","vite-plugin-html": "^3.2.0","vitejs/plugin-vue": &qu…

Eureka:集群环境配置

创建三个集群 导包 <!-- 导包--><dependencies><!-- Eureka -server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId><version>1.…

信号

信号也是IPC中的一种&#xff0c;是和管道&#xff0c;消息队列&#xff0c;共享内存并列的概念。 本文参考&#xff1a; Linux中的信号_linux中信号_wolf鬼刀的博客-CSDN博客 Linux系统编程&#xff08;信号处理 sigacation函数和sigqueue函数 )_花落已飘的博客-CSDN博客 Linu…

回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本…

Scratch 之 RPG 引擎制作教程(1) / 地图行走

大家好&#xff0c;又和大家见面了&#xff0c;那么我们这期讲的就是RPG游戏的地图以及人物的行走。 我发现大家并不是很懂RPG游戏引擎&#xff0c;也就是说这种引擎对于技术的要求还是比较高的。为了让更多人直接上手制作RPG游戏&#xff0c;我打算开启这一系列教程。 这个教程…

Azure应用程序网关

文章目录 什么是应用程序网关实战演练创建虚拟网络创建虚拟机创建应用程序网关测试搭建结果 什么是应用程序网关 Azure应用程序网关是一种托管服务&#xff0c;用于提供安全、可缩放的 Web 应用程序前端点的应用程序传送控制和保护。它可以通过 SSL 终止、cookie 基于会话持久…