STM8 学习笔记14:输入捕获

文章介绍了STM8微控制器中通用定时器的输入捕获功能,包括测量脉冲宽度和频率的方法。通过设置捕获模式、配置相关寄存器如TIMx_CCMR1、TIMx_CCER1等,来实现上升沿或下降沿的检测,并在捕获事件发生时更新计数器的值,从而计算出高电平或低电平脉宽。此外,还提供了TIM3_IC实验的配置步骤和相关函数介绍。
摘要由CSDN通过智能技术生成

Input capture

Gitee 空间跳转:https://gitee.com/galoc/stm8.git

1 概述

输入捕获就是对输入的信号进行捕获,可以用来测量脉冲宽度或者测量频率.

2 输入捕获脉宽的测量原理

以捕获测量高电平脉宽为例,如下图:
在这里插入图片描述
CCRx1:t1 时间点 CCRx 的值
CCRx2:t2 时间点 CCRx 的值
先设置输入捕获为上升沿检测,当 t1 时刻捕获到上升沿时,先将 CNT寄存器的值清零,然后配置捕获信号为下降沿捕获.当下降沿到来的时候发生捕获,并记录此时的TIMx_CNT的值。这样,TIMx_CNT的是高电平的脉宽。同时根据TIM的计数频率,我们就能知道高电平脉宽的准确时间。
由上图可知,高电平期间,计数器计数的个数:N*(ARR+1)+ CCRx2

3 通用定时器输入捕获部分框图介绍

在这里插入图片描述

3.1 捕获/比较通道的输入部分(通道1)框图介绍

在这里插入图片描述

3.2 捕获/比较通道 1 主电路——输入部分

在这里插入图片描述
在捕获模式下,捕获发生在影子寄存器上,然后再复制到预装载寄存器中。

4 相关寄存器

  1. TIMx_CCMR1.ICxF[3:0] 输入捕获滤波器(Input capture x filter)
    作用:用于配置捕获 TI1 的采样频率。
  2. TIMx_CCER1.CC1P 捕获/比较x输出极性(Capture/compare 1 output polarity)
    0:上升沿捕获
    1:下降沿捕获
    作用:用于配置捕获极性
  3. TIMx_CCMR1.CC1S 捕获/比较选择(Capture/compare 1 selection)
    01:CC1 通道配置为输入,IC1 被映射到 TI1FP1
    10:CC1 通道配置为输入,IC1 被映射到 TI2FP1
    作用:用于配置映射通道
  4. TIMx_CCMR1.CC1PSC[1:0] 输入捕获分频器(Input capture 1 prescaler)
    00:不分频,每次在捕获输入上检测到边缘时都进行捕获
    01:每 2 个事件捕获一次
    10:每 4 个事件捕获一次
    11:每 8 个事件捕获一次
    作用:用于配置捕获事件的什么情况下发生
  5. TIMx_CCER1.CC1E 捕获/比较输出使能(Capture/compare 1 output enable)
    0:捕获禁止
    1:捕获使能

5 通用定时器 TIM3_IC 实验配置步骤(先配置后使能)

  1. 配置 CLOCK、GPIO
  2. 配置定时器基础工作参数
  3. 配置输入通道映射、捕获边沿
  4. 使能捕获
  5. 使能定时器更新中断、捕获中断及启动计数器
  6. 编写中断服务函数
  7. 编写更新中断和捕获回调函数

相关函数介绍如下表:

函数主要寄存器主要功能
Ic_Clock_ConfigCLK_SWR.SWI、CLK_CKDIVR.CKM、CLK_PCKENR1.PCKEN11配置时钟源并使能相关外设时钟
Ic_GPIO_ConfigPx_DDR.DDR[7:0]、Px_IDR.IDR[7:0]、Px_CR1.C1[7:0],Px_CR2.C2[7:0] 、SYSCFG_RMPCR3配置 GPIO 并复用为 TIM3_Chn
Ic_TimBase_InitTIMx_PSCR.PSC[2:0]、TIMx_CR1.DIR、TIMx_ARRH、TIMx_ARRL、TIMx_CCER.CC1E配置定时器基础工作参数
Ic_Cfg_InitTIMx_CCER1.CC1P、TIMx_CCMR1.CC1S、TIMx_CCMR1.CC1PSC、TIMx_CCMR1.IC1F配置输入通道映射、捕获边沿
IC_Start_ITTIMx_CR1.CEN、TIMx_IER.CC1IE、TIMx_IER.UIE、asm(“rim\n”)使能捕获、 使能定时器更新中断、捕获中断及启动计数器
Ic_UpdateCallback更新中断回调函数
Ic_CaptureCallback捕获回调函数

6 参考

STM32通用定时器的输入捕获(实例:输入捕获)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值