笔记 11 : 彭老师课本第 6 章, PWM :原理,datasheet 查阅,相关寄存器说明,上拉电阻,下拉电阻概念

本文主要是介绍笔记 11 : 彭老师课本第 6 章, PWM :原理,datasheet 查阅,相关寄存器说明,上拉电阻,下拉电阻概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(81) 介绍 PWM :

在这里插入图片描述

++

在这里插入图片描述

++

在这里插入图片描述

++

在这里插入图片描述

++本板子上远见,就是一个无源的蜂鸣器:

在这里插入图片描述

(82) 接着开始查看说明书:

在这里插入图片描述

++

在这里插入图片描述

++

在这里插入图片描述

(83)介绍 PWM 的工作原理:

在这里插入图片描述

++

在这里插入图片描述

++
在这里插入图片描述

++ 每个 PWM 周期结束后都可以重新设置 TCMPBn 与 TCNTBn 寄存器,从而实现更复杂的波形 ,见 sheet 手册。

在这里插入图片描述

(84) 接着开始介绍代码编写:

在这里插入图片描述

++

在这里插入图片描述

++ 从下图可知,蜂鸣器的硬件电路用的是 PWM 的第一个输出:

在这里插入图片描述

++ 随后操作 GPIO 的 sheet 与 PWM 的说明书。
++ 由下图可见,虽然寄存器 GPD0CON 是32 bit ,每 4 个 bit 控制一个引脚的属性,但本寄存器只控制 4 个引脚,只用前 16 bit 。

在这里插入图片描述

++ 同理 GPD0DAT 与 GPD0PUD ,因为后续代码里 , PWM 配置了 PUD 寄存器,为 0 ,禁止上下拉电阻

在这里插入图片描述

++

在这里插入图片描述

++ 继续总结:

在这里插入图片描述

++ 这里补充下下拉电阻的概念:

在这里插入图片描述

++

在这里插入图片描述

++ 利用 arm 汇编的地址访问特性。用结构体可以会更高效。因为 arm 指令恒定 32 位,限制了立即数的长度 。不像 intel 直接可以 mov 恒大的常量。这里的 TCFG0/1 的 CFG 应该就是 configure 的意思

在这里插入图片描述

++开始设置 PWM 的一系列寄存器,配置输出频率。死区不用设置

在这里插入图片描述

++

在这里插入图片描述

++补充时钟频率的计算:

在这里插入图片描述

++

在这里插入图片描述

++

在这里插入图片描述

++上图装载时使用 0xff 的另一个解释就是设置了第 4 bit ,死区为 0

在这里插入图片描述

++

在这里插入图片描述

(85)

谢谢

这篇关于笔记 11 : 彭老师课本第 6 章, PWM :原理,datasheet 查阅,相关寄存器说明,上拉电阻,下拉电阻概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128663

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4