定时器之输入捕获

news2025/3/3 11:43:45

输入捕获的作用

工作机制
        输入捕获通过检测外部信号边沿(上升沿/下降沿)触发计数器(CNT)值锁存到捕获寄存器(CCRx),结合两次捕获值的差值计算信号时间参数。

  • 脉冲宽度测量:配置两个通道分别捕获上升沿和下降沿,计算两次捕获值的差值与分辨率的乘积(分辨率=1/定时器时钟频率)。

  • 频率测量:捕获连续两个上升沿的CNT差值,通过(频率=定时器时钟频率/周期差值)计算。

关键硬件模块

  • 滤波器:消除信号毛刺(通过设置ICFilter参数控制采样频率)
  • 预分频器:控制捕获事件触发频率(如每2/4/8个边沿触发一次捕获)
  • 边沿检测器:通过CCER寄存器配置触发极性TIM_ICPOLARITY_RISING/FALLING

结构及其运行原理

基本结构如图

我们拿通道1来讲解他的结构和各结构的功能

输入捕获的硬件由以下关键模块组成:

模块功能描述
输入通道外部信号通过GPIO引脚输入到定时器的某个通道(如TIMx_CH1~CH4)
边沿检测器检测信号的上升沿或下降沿(通过TIMx_CCER寄存器的CCxP位配置极性)
数字滤波器抑制信号抖动(通过TIMx_CCMRxICxF位配置滤波窗口,滤除高频噪声)
预分频器对输入信号进行分频(通过TIMx_CCMRxICxPSC位配置,如每2/4/8个边沿触发一次)
捕获寄存器锁存当前定时器计数器(CNT)的值到TIMx_CCRx寄存器
中断/事件生成触发捕获完成中断或DMA请求,通知CPU处理数据

信号和数据处理

第一阶段:输入滤波

第一阶段是将输入的信号进行滤波处理,信号经过滤波器和预分频器,滤除噪声并降低触发频率

第二阶段:边沿检测

边沿检测器检测到预设的边沿(上升沿或下降沿)时,触发捕获事件。上升沿脉冲或下降沿脉冲。

  • 上升沿脉冲:当信号出现一个上升沿,就发出一个脉冲
  • 下降沿脉冲:当信号出现一个下降沿,就发出一个脉冲

第三阶段:信号选择

信号来源有三种,直接、间接、TRC

  • 直接输入模式(Direct Mode)​:外部信号直接连接到 ​同一通道的捕获寄存器。例如,TIMx_CH1的输入信号直接映射到TIMx_CCR1寄存器。
  • 交叉输入模式(Indirect Mode)​:外部信号 ​跨通道映射到其他通道的捕获寄存器。例如,TIMx_CH1的输入信号映射到TIMx_CCR2寄存器。
  • TRC:信号来源来自从模式控制器

信号的四种走向

第四阶段:分频

在分频阶段如果选择了2分频会出现当每个输出的脉冲累计为2时输出一个脉冲,分频越大响应的脉冲数量等于除分频数的值。分频后每输出一个脉冲就会触发一个ccx的事件,让CCRx寄存器记录触发ccx事件时CNT的值。

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

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

相关文章

Uniapp开发微信小程序插件的一些心得

一、uniapp 开发微信小程序框架搭建 1. 通过 vue-cli 创建 uni-ap // nodejs使用18以上的版本 nvm use 18.14.1 // 安装vue-cli npm install -g vue/cli4 // 选择默认模版 vue create -p dcloudio/uni-preset-vue plugindemo // 运行 uniapp2wxpack-cli npx uniapp2wxpack --…

Pikachu

一、网站搭建 同样的,先下载安装好phpstudy 然后启动Apache和Mysql 然后下载pikachu,解压到phpstudy文件夹下的www文件 然后用vscode打开pikachu中www文件夹下inc中的config.inc.php 将账户和密码改为和phpstudy中的一致(默认都是root&…

CentOS7 使用 YUM 安装时报错:Cannot find a valid baseurl for repo: base/7/x86_64的解决方法

CentOS7 使用 YUM 安装时报错:Cannot find a valid baseurl for repo: base/7/x86_64的解决方法 报错代码解决方法 报错代码 输入命令yum update -y时报错Cannot find a valid baseurl for repo: base/7/x86_64 解决方法 有 wget 工具 更换YUM源 mv /etc/yum.…

Linux----网络通信

一、IP地址详解 (一)核心概念 概念说明IP地址网络设备的唯一逻辑标识符,相当于网络世界的"门牌号"主机任何接入网络的终端设备(计算机/手机/服务器等)核心作用① 设备标识 ② 路由寻址 ③ 数据传输 &…

【MySQL篇】数据类型

目录 前言: 1,数据类型的分类 ​编辑 2 ,数值类型 2.1 tinyint类型 2.2 bit类型 2.3 小数类型 2.3.1 float类型 2.3.2 decimal类型 3,字符串类型 3.1 char 3.2 varchar 3.3 char与varchar的比较 3.4日期和时间类型 3.5 …

【音视频】图像基础概念

一、图像基础概念 1.1 像素 像素是一个图片的基本单位,pix使英语单词pixtureelement的结合“pixel”的简称,所以像素有图像元素之意。 例如2500*2000的照片就是指横向有2500个像素点,竖向有2000个像素点,总共500万个像素&#x…

时钟树的理解

对应电脑的主板,CPU,硬盘,内存条,外设进行学习 AHB总线 -72MHZ max APB1总线 -36MHZ max APB2-72MHZ max 时序逻辑电路需要时钟线控制 ,含有记忆性的原件的存在。(只有时钟信号才能工作&…

CentOS vs Ubuntu - 常用命令深度对比及最佳实践指南20250302

CentOS vs Ubuntu - 常用命令深度对比及最佳实践指南 引言 在 Linux 服务器操作系统领域,CentOS 和 Ubuntu 是广泛采用的发行版。它们在命令集、默认工具链及生态系统方面各有特点。本文深入剖析 CentOS 与 Ubuntu 在常用命令层面的异同,并结合实践案例…

问题修复-后端返给前端的时间展示错误

问题现象: 后端给前端返回的时间展示有问题。 需要按照yyyy-MM-dd HH:mm:ss 的形式展示 两种办法: 第一种 在实体类的属性上添加JsonFormat注解 第二种(建议使用) 扩展mvc框架中的消息转换器 代码: 因为配置类继…

为AI聊天工具添加一个知识系统 之127 详细设计之68 编程 核心技术:Cognitive Protocol Language 之1

本文要点 要点 今天讨论的题目:本项目(为使用AI聊天工具的两天者加挂一个知识系统) 详细程序设计 之“编程的核心技术” 。 source的三个子类(Instrument, Agent, Effector) 分别表示--实际上actually ,…

多个pdf合并成一个pdf的方法

将多个PDF文件合并优点: 能更容易地对其进行归档和备份.打印时可以选择双面打印,减少纸张的浪费。比如把住宿发票以及滴滴发票、行程单等生成一个pdf,双面打印或者无纸化办公情况下直接发送给财务进行存档。 方法: 利用PDF24 Tools网站 …

周边游平台设计与实现(代码+数据库+LW)

摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对旅游信息管理的提升&#xff0c…

python量化交易——金融数据管理最佳实践——qteasy创建本地数据源

文章目录 qteasy金融历史数据管理总体介绍本地数据源——DataSource对象默认数据源查看数据表查看数据源的整体信息最重要的数据表其他的数据表 从数据表中获取数据向数据表中添加数据删除数据表 —— 请尽量小心,删除后无法恢复!!总结 qteas…

⭐算法OJ⭐矩阵的相关操作【动态规划 + 组合数学】(C++ 实现)Unique Paths 系列

文章目录 62. Unique Paths动态规划思路实现代码复杂度分析 组合数学思路实现代码复杂度分析 63. Unique Paths II动态规划定义状态状态转移方程初始化复杂度分析 优化空间复杂度状态转移方程 62. Unique Paths There is a robot on an m x n grid. The robot is initially lo…

Baklib云内容中台的核心架构是什么?

云内容中台分层架构解析 现代企业内容管理系统的核心在于构建动态聚合与智能分发的云端中枢。以Baklib为代表的云内容中台采用三层架构设计,其基础层为数据汇聚工具集,通过标准化接口实现多源异构数据的实时采集与清洗,支持从CRM、ERP等业务…

一个基于vue3的图片瀑布流组件

演示 介绍 基于vue3的瀑布流组件 演示地址: https://wanning-zhou.github.io/vue3-waterfall/ 安装 npm npm install wq-waterfall-vue3yarn yarn add wq-waterfall-vue3pnpm pnpm add wq-waterfall-vue3使用 <template><Waterfall :images"imageList&qu…

【pytest框架源码分析一】pluggy源码分析之hook常用方法

简单看一下pytest的源码&#xff0c;其实很多地方是依赖pluggy来实现的。这里我们先看一下pluggy的源码。 pluggy的目录结构如下&#xff1a; 这里主要介绍下_callers.py, _hooks.py, _manager.py&#xff0c;其中_callers.py主要是提供具体调用的功能&#xff0c;_hooks.py提…

《Kafka 理解: Broker、Topic 和 Partition》

Kafka 核心架构解析:从概念到实践 Kafka 是一个分布式流处理平台,广泛应用于日志收集、实时数据分析和事件驱动架构。本文将从 Kafka 的核心组件、工作原理、实际应用场景等方面进行详细解析,帮助读者深入理解 Kafka 的架构设计及其在大数据领域的重要性。 ​1. Kafka 的背…

在docker容器中运行vllm部署deepseek-r1大模型

# 在本地部署python环境 cd /app/ python -m venv myenv # 激活虚拟环境 source /app/myenv/activate # 要撤销激活一个虚拟环境&#xff0c;请输入: deactivate# 进入虚拟环境安装modelscope pip install modelscope# 下载大模型&#xff08;7B为例&#xff09; modelscope do…

Django基础环境准备

Django基础环境准备 文章目录 Django基础环境准备1.准备的环境 win11系统&#xff08;运用虚拟环境搭建&#xff09;1.1详见我的资源win11环境搭建 2.准备python环境2.1 winr 打开命令提示符 输入cmd 进入控制台2.2 输入python --version 查看是否有python环境2.3在pyhton官网下…