MSP432笔记4:时钟与滴答计时器

news2024/10/6 14:25:51

所用单片机型号:MSP432P401r

今日继续更新我的MSP432电赛速通笔记:

提示:

本节内容相当于讲述delay_ms() 和delay_us() 俩延时函数的由来,

所以不需要花费过多时间斟酌

MSP432单片机各部件能在有条不紊地自动工作,实际上是在其系统时钟作用下,由CPU指挥芯片内各个部件自动协调工作,使内部逻辑硬件产生各种操作所需要的脉冲信号而实现的。

MSP432单片机通过软件控制时钟系统可以使其工作在多种模式,

包括6种活动模式  和  5种低功耗模式,

通过这些工作模式,可合理地利用单片机内部资源,从而实现低功耗。

时钟系统是MSP432单片机中非常关键的部件,

通过时钟系统可以在功耗和性能之间寻求最佳的平衡点,

为单芯片系统的超低功耗设计提供了灵活的实现手段。

本文滴答定时器有关配置代码,函数都在空项目例程有包含:可在此处下载:

https://download.csdn.net/download/qq_64257614/87781382?spm=1001.2014.3001.5503

目录

一、时钟框图的介绍:

框图大体介绍:

目录

一、时钟框图的介绍:

框图大体介绍:

内部时钟源和外部时钟源介绍:

二、滴答计时器延时:

三、滴答定时器用法:

一、时钟框图的介绍:

此页来源于技术手册(slau356h.pdf)第380页

框图大体介绍:

1.左边的带有方框的都是MSP432的时钟源

2.梯形圈出的就是选择器

3.紧跟着梯形选择器后面矩形圈出来的就是分频器之类的

4.分频器之后就是时钟了

内部时钟源和外部时钟源介绍:

左上角俩个是外部时钟源:

在上面的LFXTBYPASS是低速晶振

在下面的HFXTBYPASS是高速晶振

 他下面的五个就是内部时钟源:

 这些  XIN和   XOUT都是外接晶振的引脚:

这些引脚后续会有需要进行配置

1.首先介绍这个 DCO数控时钟源:

默认时钟频率是3Mhz

可以通过程序来改变它的时钟

使用内部电阻时,它的时钟精度不高,可通过外接高精度电阻来提升精度

(下图的DCOR就是这个外接高精度电阻)

有了DCOR,DCO就能超频到64Mhz,但超频可能会发热、耗硬件寿命

(超频到64Mhz,默认最大频率48Mhz的1.3333  " 4/3 " 倍)

 2.VLO超低功耗低频时钟源:

它输出时钟的典型频率为9.4kHz。

 3.REFO低频时钟源:

有俩个典型的时钟频率 32768Hz 和 128kHz

4.SYSOSC系统振荡器:

输出时钟典型频率为5Mhz,也可作为ADC的时钟源,每秒采样率达到每秒200ksps

以上1~4的时钟源  (在整个图下面的 四个) 

这些时钟源都没有分频器,是不可以分频的

5.ACLK辅助时钟:

可以选择低速晶振VLO REFO作为时钟源,

可以给各个外设提供时钟,最大频率为128kHz

 6.MCLK主时钟:

配置时六个时钟源都可用,

CPU的滴答定时器就是直接连在这个时钟的

外设也可用这个时钟

7.HSMCLK是子系统时钟:

8.SMCLK是低俗子系统时钟:

         7和8接的六个时钟源都是可以用的

9.BCLK是低俗备用时钟:

          可选择低俗晶振和REFO作为时钟源。

          最大频率被限制在32768Hz

10.最后还有个默认时钟切换: 略~

二、滴答计时器延时:

Systick定时器是24位单调递减定时器,最大重装载值为16777216,

滴答定时器是连接到MCLK

当MCLK频率为48Mhz

        通过计算得:

(2的24次方再除以48000000),最大延时时长为0.349秒。

滴答定时器可以作为操作OS(操作系统)的节拍定时器,以及 测量时间,等等。

滴答计时器有三个寄存器:

控制和查看状态的寄存器(STCSR);

放重装载值的寄存器       (STRVR);

当前值寄存器                  (STCVR);

SysTick滴答定时器,不支持外部时钟源,

      因此控制和状态寄存器中的时钟源位

CLKSOURCE位需要写1,

三、滴答定时器用法:

刚才学习了这么多滴答定时器的原理,那他该如何使用呢?

其实它就是提供了俩个   不占用软件延时的延时函数,以及后续学习的定时器中断

延时函数使用十分简单,

比如我想需要时延100ms,只要写一句:delay_ms(100);即可。

以下贴出    void delay_ms(uint32_t nms) 和void delay_us(uint32_t nus)定义:

//延时nus
//nus为要延时的us数.
//注意nus的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:
//nus<=0xffffff*1000000/SYSCLK
//SYSCLK单位为Hz,nms单位为ms
//对48M条件下,nus<=349525 (349ms)
void delay_us(uint32_t nus)
{
	uint32_t temp;
	SysTick->LOAD = nus * fac_us;			  //时间加载
	SysTick->VAL = 0x00;					  //清空计数器
	SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; //开始倒数
	do
	{
		temp = SysTick->CTRL;
	} while ((temp & 0x01) && !(temp & (1 << 16))); //等待时间到达
	SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;		//关闭计数器
	SysTick->VAL = 0X00;							//清空计数器
}
//延时nms
void delay_ms(uint32_t nms)
{
	while(nms)
	{
		delay_us(1000);
		--nms;
	}
}

目前学习进度就只到这,以后有新发现会添加进去。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读_音频表示_wav2vec_2.0

论文信息 name_en: wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations name_ch: wav2vec 2.0&#xff1a;语音表示自监督学习框架 paper_addr: http://arxiv.org/abs/2006.11477 date_read: 2023-04-27 date_publish: 2020-10-22 tags: [‘深…

C++深度解析:虚函数的使用与避免

C深度解析&#xff1a;虚函数的使用与避免 1. 虚函数的基本概念与原理 (Basic Concepts and Principles of Virtual Functions)1.1 虚函数的定义与作用 (Definition and Role of Virtual Functions)1.2 虚函数的底层实现 (Underlying Implementation of Virtual Functions)1.3 …

【CANN训练营0基础赢满分秘籍】进阶班 Atlas 200I DK 智能小车

1 智能小车三维结构设计 1.1 基本模块 坚固酷炫结构模块运动控制模块超声波传感器模块摄像头视觉模块其他传感器模块 1.2 结构设计基本原则 从零开始设计并搭建智能小车&#xff0c;在满足外观要求的基础上&#xff0c;要满足小车运转过程中的运动干涉率为O&#xff0c;并且…

【CANN训练营0基础赢满分秘籍】进阶班 应用开发深入讲解

1 AIPP AIPP (Artificial Intelligence Pre-Processing)人工智能预处理&#xff0c;在AI Corfe上完成数据预处理。 1.1 静态AIPP 构造AIPP配置文件*.cfg使能静态AIPP&#xff0c;将其配置参数保存在模型文件中。 atc --framework3--soc_versionS[soc_version) --model SHOM…

基于51单片机的电子琴Protues仿真设计

一、设计背景 基于51单片机的电子琴是一款由51单片机控制器、音频模块和硬件阵列组成的数字化乐器。它可以模拟各种乐器的音效&#xff0c;同时也具有许多常规电子琴所没有的高级功能。 首先&#xff0c;这种电子琴是以数字信号处理技术为基础的。通过软件编程&#xff0c;将…

【JUC】Java对象内存布局和对象头

【JUC】Java对象内存布局和对象头 文章目录 【JUC】Java对象内存布局和对象头1. 对象的内存布局1.1 对象头1.1.1 对象标记1.1.2 类元信息/类型指针 1.2 实例数据1.3 对齐填充 2. 测试 1. 对象的内存布局 在 HotSpot 虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为三…

MSP432学习笔记6:中断优先级管理

所用型号&#xff1a;MSP432P401R 今日继续我的MSP432电赛速通之路。 主要学习的是&#xff1a;中断优先级管理、软件挂起中断、屏蔽中断优先级 目录 MSP432具有8级可编程的中断优先级。 中断优先级管理库函数&#xff1a; 软件挂起中断&#xff1a; 屏蔽中断优先级&#…

微信小程序富文本插件mp-html

使用场景&#xff1a; 偏偏后端传过来的数据又要用到富文本标签&#xff0c;然后找了很多组件&#xff0c;要不就是下载量低&#xff0c;要不就是里面功能太少&#xff0c;只有这款mp-html组件深得我心&#xff0c;里面功能丰富&#xff0c;简单实用&#xff0c;真的绝绝子&…

DMA直接存储器存取

目录 存储器映像 寄存器 DMA框图 DMA基本结构 DMA请求映射 数据宽度与对齐 ​编辑 存储器到存储器 ​编辑 外设与存储器 来源b站江科大stm3入门教程 存储器映像 寄存器 DMA框图 AHB从设备&#xff08;DMA自身的寄存器&#xff09;连接在总线矩阵右侧的AHB总线上 所以DMA既…

LeetCode:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

509. 斐波那契数 题目 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;…

无底线内卷?谈谈如何在职场中实现人生巅峰

在竞争激烈的职场上&#xff0c;各种职场难题时常出现&#xff0c;如何进行有效沟通、如何应对工作压力、如何提升职业能力等&#xff0c;这都是需要去克服的问题。 1. 尝试人际沟通A&#xff1a;TO 企业B&#xff1a;TO 员工 2. 适应工作压力A&#xff1a;原因B&#xff1a;TO…

ROS2 入门应用 创建启动文件(C++)

ROS2 入门应用 创建启动文件&#xff08;C&#xff09; 1. 创建功能包2. 添加依赖关系3. 添加编译信息4. 创建启动文件4.1. Python4.2. XML4.3. YAML 5. 编译和运行 1. 创建功能包 用Python、XML或YAML编写的启动文件可以启动和停止不同的节点&#xff0c;以及触发和处理各种事…

法规标准-GB/T 39323标准解读(2020版)

GB/T 39323是做什么的&#xff1f; GB/T 39323全称为乘用车车道保持辅助(LKA)系统性能要求及试验方法&#xff0c;其中主要描述了LKA系统的功能要求及测试要求 一般要求 1.系统应能在状态良好的车道边线环境下识别车辆与车道边线的相对位置&#xff0c;辅助驾驶员将车辆保持…

76.建立一个主体样式第二部分

上节课的时候我们完成的页面是这个样子&#xff01; ● 之后我们通过绝对定位来解决位置定位的问题 .header-container {width: 1200px;margin: 0 auto;position: absolute;left: 50%;top: 50%; }header {height: 100vh;background-color: orange;position: relative; }● 之…

通过Python的PyPDF2库提取pdf中的文字

文章目录 前言一、PyPDF2库是什么&#xff1f;二、安装PyPDF2库三、查看PyPDF2库版本四、使用方法1.引入库2.定义pdf路径3.打开PDF文件4.创建PDF阅读器对象5.获取PDF文件中的页数6.遍历每一页7.获取当前页内容8.提取当前页文本9.打印当前页文本10.效果 总结 前言 一、PyPDF2库…

【2023 · CANN训练营第一季】初识新一代开发者套件 Atlas 200I DK A2---介绍Atlas 200I DK A2的基本使用

1.Atlas 200I DK A2开发者套件板介绍 应用场景&#xff1a;昇腾AI开发者上手学习、实践创新场景&#xff0c;提供配套软硬件 关键特性规格描述形态135mm120mm44mmAI 算力整数精度&#xff08;INT8):8 TOPS 半精度&#xff08;FP16): 4 TFLOPS摄像头接口2* MIPI - CSI 支持两个…

研报精选230521

目录 【行业230521山西证券】煤炭行业周报&#xff1a;量减需增进口倒挂&#xff0c;煤炭价格企稳反弹 【行业230521东吴证券】大炼化周报&#xff1a;油价弱势震荡&#xff0c;下游表现疲软 【行业230521东海证券】4月社零报告专题&#xff1a;低基数下创新高&#xff0c;实质…

MyBatisX

文章目录 MyBatisXMybatis带参方法 动态条件查询多条件查询多条件-动态条件查询ifchoose(when,otherwise) 添加添加-主键返回 修改修改全部字段修改动态字段 删除MyBatis参数传递多个参数单个参数 MyBatis注解完成增删改查 MyBatisX pojo类中的属性名要和数据库中的一致才能实现…

ARM学习笔记_2 模式,寄存器,流水线

ARM arm体积小功耗低性能高&#xff0c;支持thumb ARM双指令集&#xff0c;兼容8/16位器件&#xff1b;大量使用寄存器&#xff0c;指令定长&#xff0c;寻址简单。 ARM是32位架构&#xff0c;Word 32bit&#xff0c; half Word 16bit. 模式 用户模式是用户程序的模式&#…

RK3568平台开发系列讲解(驱动基础篇)RK平台IR的使用

🚀返回专栏总目录 文章目录 一、红外遥控配置二、内核驱动2.1 DTS 定义键值表2.2 内核用户码和IR键值的获取2.3 编译 IR 驱动进内核2.4 Android 键值映射三、IR 波形沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK IR的使用进行学习。 一、红外遥控配置 …