MCU定时器-从度量到设计 这篇文章里面写的是CW32的,但是今天文章里面出现的是TI的MSPM0,里面有很多有趣的设计。
其次就是TI本身也是在模拟的道路上一路绝尘,在我这里是非常喜欢的公司,哈哈哈哈。
以前小小的写过,太水了,看新篇吧~
不像别的MCU,对定时器有一些名字上面的划分,TI是按照一个统一的外设来描述的。
OK,这就是一切的源头
搞明白了模块,也就搞明白了这个外设。
分为三类:
计数器通过外部信号驱动(External Clock Mode)
在外部时钟模式下,计数器可以通过 ETR(外部触发输入引脚)或 TIx(输入捕获引脚)驱动。
例如,在 STM32 中:
ETR 模式(外部触发时钟模式 1):定时器通过 ETR 引脚接收外部脉冲信号,每个脉冲使计数器递增。
浮空输入
TIx 模式(外部触发时钟模式 2):定时器从 TI1 或 TI2(输入捕获通道)接收外部信号。
在这里
我们接下来看通过外部输入信号进行事件计数。
可以计数外部脉冲信号,即每当输入引脚检测到上升沿(或下降沿)时,计数器递增或递减。
STM32 事件计数模式
在 STM32 中,可以使用输入捕获通道(TIMx_CHx)作为外部时钟源。
就是这样的,输入的信号有两个边沿,哪个是你要的?反正都是要设置的。
红外编码器测速:电机上的旋转编码器每转一圈输出多个脉冲,定时器可以统计脉冲数量,从而计算速度。
就是这样的了
计数按钮按下次数:每次按下按钮,定时器计数 +1。
TIM3 通过 TI1(输入引脚)接收外部脉冲,每次脉冲计数器 +1。
适用于测速、事件计数等应用。
计数器通过其他外设触发:
就像这样
在 STM32 中,定时器可以通过其他外设(如 DMA、ADC、UART)产生的事件触发计数:
TRGO就在这里
都有触发
基本定时器就会简单点
需要对某个信号进行定时采样(也就是隔一段时间,比如说2ms)。
OK,这里看个ADC
从这里进去的
还有一个计数模式: