定时器输出比较&输入捕获

1.1 定时器的输出比较功能

1.1.1 什么意思?

 

所谓的输出比较就是计数器的值与比较寄存器的值进行比较,大于输出一种电平,小于输出另一种电平。

 

选择PWM1模式的时候,计数器的值小于设置的值输出有效电平(低电平有效),大于就是无效电平。

怎么让它们与灯关联上??输出比较通道的概念

 

PB0在原理图上连接的是LED3,在引脚映射上描述是可以作为定时器3的通道3,如果我使用定时器3的通道3作为PWM输出,LED3就会接收到PWM输出的波形。

LED3会显示成什么样子??PWM是有效电平和无效电平的一个占比,灯是低电平有效,高电平无效,如果有效电平时间长灯亮度高,有效时间短灯暗。

配置示例:

 

如果我们改变占空比(PWM)就可以实现灯慢慢亮,慢慢灭,怎么调节??改变比较寄存器里面的值。

我们这里选择使用每次更新后改变比较寄存器的值。

 

总结:

1)什么是PWM?有效电平和无效电平的占空比

2)什么是输出比较?大于(比较寄存器)的极性是什么,小于极性又是什么

3)实现PWM输出配置有哪些?定时器配置好,PWM模式选择、极性选择、通道选择、比较寄存器的值,通道对应引脚映射。

 

1.2 定时器的输入捕获功能

1.2.1 什么是输入捕获?

字面意思捕获输入的信号,怎么捕获?为什么要捕获??检测通道上的高低电平变化,可以及时快速的获取到通道上的状态。

找一个现象学习这种功能,我们这里使用按键去测试,按键按下被捕获,松手又会捕获,计算两次之间的时间,得到按下的时长。

​​​​​​​1.2.2 配置输入捕获

在库函数中可以看到如下函数。

 

这个函数需要的配置参数如下:从上到下分别是通道选择、捕获边沿设置、寄存器映射、分频设置、滤波等级设置。 

 

 

 

我们根据之前的了解,将它们进行如下设置即可使用了(定时器3的配置不变,加上下面代码再启动就可以了)。

 

设置完成之后,我们进行测试,这里先测试是否能够捕获到上升沿和下降沿。

 

测试是完全没问题的,按键按下可以检测到,松手也能检测到(按下输出一次,松手又是一次)。 

但是,这样检测不及时,最好还是开中断去做,所以我们把定时器3的中断打开。 

然后在中断中放置同样的代码进行测试,发现也是没有问题的,可以正常检测。

 ​​​​​​​

1.2.3 按下到松手的时长计算

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值