Timer0/1设置时钟计算中断时间

news2024/7/6 19:09:19

        时钟一般分为外部晶振时钟和内部时钟,相对而说,外部晶振时钟的精准度比内部系统时钟高,时间计算的更准。除非产品需要一般都不会用外部晶振时钟,因为好的东西贵啊,成本高。

        本文主要介绍如何利用时钟设置Timer0/1(RTC、PWM中断、ADC),中断时间如何设置。

基本知识 1 MHz=1000 kHz=1000 000 Hz  1s = 1 000ms

选择定时器功能之前都要选择时钟,然后选择分频,才能确定中断时间

目录

一、时钟结构

二、设置Timer0/1时钟

2.1、RC32K(低功耗时钟)

2.2、RC1M (系统时钟)

2.2.1 PLL分频配置

 2.2.2 TIMER0/1 Get分频选择

 三、计算中断时间

3.1 RC_32KHz 计算中断时间

3.2 RC_1MHz计算中断时间


一、时钟结构

如下图所示:

RC32KHz(RC128KHz4分频)为低速时钟(低功耗模式)、

RC1MHz 为系统时钟(能连接各个模块)、

XOSC为外部晶振时钟

 

时钟结构说明:
(1). 系统包含 3 个模拟时钟源: RC128KHz、RC1MHz 和外部晶振 ,其中 RC128KHz 在模拟端经过 4 分频后形成 RC32KHz 时钟源送入数字系统使用;其中 RC1MHz 在模拟端经过 4 分频后形成 RC250KHz 时钟源送入数字 系统使用;外部晶振典型支持 8MHz 和 16MHz;
(2). 模拟 PLL 锁相环接入时钟源支持内部 RC1MHz 和外部晶振时钟,但接入时钟 仅支持 1MHz ,因此当 PLL 接 入时钟源选择外部晶振时,必须根据不同的外部晶振频率进行 8 分频或者 16 分频至 1MHz;
(3). 系统时钟为内部 PLL 输出时钟; PLL 输出时钟频率最大 32MHz ,并可根据不同应用需求配置 SYS_CLK_SEL 进行分频;当选择外部晶振时钟作为系统时钟或者晶振时钟作为 PLL 接入时钟源时,在低功耗唤醒时, 由于晶振起振时间影响,系统等待的时间将远大于选择内部 RC1MHz 作为 PLL 接入时钟源并且作为系统 时钟的情况;
(4). CAN 模块工作时钟支持外部晶振和内部系统时钟,通过程序配置,需要注意的是当选择为晶振作为工作 时钟时,存在与系统运行时钟的跨时域问题,需要合理配置 SYS_CAN_DOMAIN 寄存器;当 CAN 模块时钟 未供给至 CAN 模块时,CAN 模块的任何寄存器均无法被存取,存取动作将可能导致系统出现故障;
(5). WDT 计数时钟为 RC32KHz 以及其 32 分频,软件可选;
(6). RTC 计数时钟 RC32KHz 以及其 32 分频、外部晶振的 32 分频,软件可选;
(7). 所有外设以及系统时钟可被门控,用于降低功耗;

二、设置Timer0/1时钟

 根据芯片手册选择时钟可选

2.1、RC32K(低功耗时钟)

低功耗时钟,RC_128K,128kHZ 4分频后就是RC_32K

2.2、RC1M (系统时钟)

2.2.1 PLL分频配置

RC1M   输入到PLL1MHz,输出32MHZ

RC 1MHz →PLL 32MHz 选择如图所示,如果没有勾选就要配置寄存器。

 我们看到PLL寄存器中没有外部时钟的分频就证明该芯片无外部晶振时钟。

 2.2.2 TIMER0/1 Get分频选择

PLL输出32MHz 到G,然后选择2分频 到TIMER0/1。

初始化勾选或者寄存器选择

 

 三、计算中断时间

3.1 RC_32KHz 计算中断时间

    32KHz = 32 000  Hz ,则1 S 为 32 000 Hz (0x7D00) ,1ms 为32 Hz(0x20)

3.2 RC_1MHz计算中断时间

RC_1MHZ →1MHZ→PLL(32MHz)→G(2分频)→16MHz

1S 为 16MHz   16MHz = 16 000 000Hz      1ms 为 16 000Hz(0X3E80)

/*!
    \brief      timer0/1 initialize
    \param[in]  timerx: TIMERx(0,1)
	\param[in]	timer_cfg: timer0/1 config
	\param[in]	timer_mod: timer0/1 mod count
    \param[out] none
    \retval     none
*/
void timer_init(uint32_t timerx,uint8_t timer_cfg,uint16_t timer_mod)
{
	TIMER_CFG(timerx) = timer_cfg;
	TIMER_MOD(timerx) = timer_mod;
	if(timerx == (uint32_t)TIMER0){
		if((timer_cfg & TIMER_CFG_IE) != 0U){
			NVIC_EnableIRQ(TIMER0_IRQn);
		}else{
			NVIC_DisableIRQ(TIMER0_IRQn);
		}
	}else{
		if((timer_cfg & TIMER_CFG_IE) != 0U){
			NVIC_EnableIRQ(TIMER1_IRQn);
		}else{
			NVIC_DisableIRQ(TIMER1_IRQn);
		}
	}
}

timer_init(TIMER0,0x2B,0x3E80);  0X2B 为各个寄存器配置,0x3E80为1ms产生一次中断。

其他的中断事件基本与之一样,模仿即可。

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

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

相关文章

0603基础使用(二)-react路由-react

文章目录 3 NavLink简单封装4 switch的使用5 解决样式丢失问题6 路由的模糊匹配和严格匹配7 Redirect结语 3 NavLink简单封装 在之前使用NavLink标签时&#xff0c;只有2个&#xff0c;代码如下&#xff1a; <NavLink activeClassName"g2zh" classNamelist-grou…

C#:如何用分部类将一个大文件改为多个小文件?

很多时候我们会发现&#xff0c;写来写去&#xff0c;一个文件慢慢就变得很大了&#xff0c;行数过千基本上就维护比较困难。 将公共代码模块化&#xff0c;可以减少一些代码&#xff0c;也是非常有效的。 那还有其它办法吗&#xff1f; 用 分部类 可以解决。 下面是简单的…

eBPF的发展演进---从石器时代到成为神(三)

4. 内在驱动 由以上简要的回顾和梳理可见&#xff0c;内核开发者们所不断寻找的是一种充分表达能力的动态机制&#xff0c;进而打破内核和用户态的壁垒&#xff08;至少在逻辑层面&#xff09;&#xff0c;从而实现一种自由、直接的需求实现。技术成为内核开发者们锋利的工具&…

UE4/5 行为树使用教程

使用行为树首先需要保证目标蓝图是继承自Character基类。然后根据本文下面的流程操作即可。 1.创建AIController 首先需要在角色自身蓝图之外创建一个新的蓝图&#xff0c;继承自AIController&#xff1a; 2.挂载AIController 找到角色自身蓝图类设置中的Pawn一栏&#xf…

云LIS系统是什么?云LIS系统的功能有哪些?

云LIS系统源码 C#医学检验云LIS平台源码 云LIS系统是什么&#xff1f; 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;可协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管理和共享&#xff0c;通过对质量…

C#探索之路(7):初探LitJson库并了解其中json的解析原理与处理报错

C#探索之路(7)&#xff1a;使用LitJson库解析数据抛出的异常错误修复指南与途径Tips 对Json格式的了解程度一定程度上影响了解决JSON相关问题的效率&#xff1b; 文章目录 C#探索之路(7)&#xff1a;使用LitJson库解析数据抛出的异常错误修复指南与途径Tips1、初步较为系统的去…

TryHackMe-Mnemonic(boot2root)

Mnemonic I hope you have fun. 端口扫描 循例nmap FTP枚举 尝试anonymous Web枚举 进80 gobuster扫 对着webmasters再扫一下 对着backups继续扫 下载zip文件&#xff0c;发现有密码 zip2john john直接爆 查看note.txt, 给出了ftpuser hydra直接爆ftp 进到ftp 用wget下载所…

VR全景图片,探究VR全景图片为何如此受欢迎?

随着科技的不断进步&#xff0c;虚拟现实技术逐渐渗透到我们的日常生活中&#xff0c;为我们带来了许多前所未有的体验和乐趣。而其中&#xff0c;VR全景图片作为一种基于虚拟现实技术的图片展示形式&#xff0c;不仅在旅游、房地产、教育等领域得到了广泛的应用&#xff0c;也…

【Java基础】语法基础

本文适合有编程基础或是需要Java语言复习的家人们食用~ 一、Java语言介绍 本篇文章使用的JDK版本是1.8&#xff08;即JDK 8&#xff09;Java语言是运行在JVM上的&#xff0c;有了JVM&#xff0c;Java语言得以在不同操作系统上运行垃圾回收机制&#xff1a;Java语言提供了一种…

文献阅读 Meta transfer learning-based super-resolution infrared imaging

题目 Meta transfer learning-based super-resolution infrared imaging 基于元迁移学习的超分辨率红外成像 摘要 我们提出了一种具有元迁移学习和轻量级网络的红外图像超分辨率方法。我们设计了一个轻量级网络来学习低分辨率和高分辨率红外图像之间的映射。我们使用外部数据…

科大讯飞版ChatGPT开始内测《讯飞星火》

科大讯飞版ChatGPT产品&#xff0c;提前交卷了&#xff01; 就在昨夜&#xff0c;讯飞骤然向开发者提供了内测通道&#xff0c;取名为讯飞星火认知大模型对外开启内测。 还有个神奇的英文名字Spark Desk&#xff0c;据说有“火花桌面智能助手”的意思。 申请的过程很简单。用…

Speech and Language Processing-之文本规范化

在对文本进行几乎任何自然语言处理之前&#xff0c;都必须对文本进行规范化。至少有三个任务通常作为任何规范化过程的一部分: 1. 分词 2. 规范化词格式 3. 句子分段 让我们从一个简单的(如果有点幼稚的话)单词标记化和非malization(以及频率计算)版本开始&#xff0c;它可以…

CIC 滤波器——不同长度的单级CIC滤波器的频谱特性

CIC 滤波器 % 多速率信号处理过程的关键是设计满足要求的抗混叠滤波器&#xff1a; % 第一&#xff1a;滤波器在有用信号频段内的纹波系数满足要求&#xff1b; % 第二&#xff1a;抽取或内插处理后&#xff0c;在有用信号频段内不产生频谱混叠&#xff1b; % 第三&#xf…

ASM磁盘组增加磁盘

续昨天的问题&#xff0c;DATA磁盘组空间不足的问题&#xff0c;客户也紧张&#xff0c;一早就讨论方案&#xff0c;新增2个2T的磁盘&#xff0c;将原来2个500G磁盘下线&#xff0c;下午存储端配置后&#xff0c;下面就是主机和数据库的事情&#xff08;为了避免客户信息泄露&a…

生成树协议 STP

文章目录 1 概述2 生成树协议 STP2.1 桥 ID&#xff08;Bridge ID&#xff09;2.2 路径开销&#xff08;Path Cost&#xff09;2.3 示例 3 扩展 1 概述 #mermaid-svg-QRMpkzeB3Xf66zNv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#3…

【学习笔记】- 零基础学React

React是用于构建用户界面的JavaScript库。想要深入学习 react &#xff0c;就应该从 jsx 入手 react脚手架初始化项目 >> npm install -g create-react-app >> create-react-app proname >> npm run start运行之后&#xff0c;出现以下画面&#xff0c;至此…

DHCP服务

~ 安装和配置 DHCP 服务&#xff0c;为办公区域网络提供地址上网&#xff1b; ~ 创建地址池 inside_pool,地址池范围 192.168.0.100 - 192.168.0.200&#xff1b; ~ 根据题目 要求正确的配置网关和DNS信息&#xff1b; ~ 修改AppSrv 的dhcp服务器默认备份时间为150秒&#x…

案例3:Java汽车保养维修系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

dll文件丢失怎么恢复,修复丢失dll的全部方法分享

dll文件丢失怎么恢复&#xff1f;其实DLL 或称为动态链接库文件&#xff0c;是 Windows 操作系统中的重要文件之一&#xff0c;它包含了被应用程序或操作系统内部使用的函数和程序代码。当应用软件或系统内置应用启动时&#xff0c;会自动加载对应的 DLL 文件以获得所需要的程序…

ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析

第一章、生态系统服务讲解 1.生态系统服务概念和基本理论 ​ 2.生态系统服务评估方法与模型讲解 ​ ​ 3.生态系统服务权衡与协同研究方法与意义 ​ 4.文献可视化分析 ​ ​ 第二章、平台基础 一、ArcGIS Pro介绍1. ArcGIS Pro简介2. ArcGIS Pro基础3. ArcGIS Pro数据预处理4…