MCU定时器-从度量到设计 这篇文章里面写的是CW32的,但是今天文章里面出现的是TI的MSPM0,里面有很多有趣的设计。
其次就是TI本身也是在模拟的道路上一路绝尘,在我这里是非常喜欢的公司,哈哈哈哈。
TI-MSPM0L1306-潮到风湿的开发板
TI-MSPM0C模块化设计案例
以前小小的写过,太水了,看新篇吧~
不像别的MCU,对定时器有一些名字上面的划分,TI是按照一个统一的外设来描述的。
OK,这就是一切的源头
搞明白了模块,也就搞明白了这个外设。
分为三类:
- 内部时钟(Internal Clock) → 使用主系统时钟(如 APB1 或 APB2 时钟)。
- 外部时钟(External Clock) → 通过 ETR(外部触发引脚)或 TIx(输入捕获通道)输入外部信号进行计数。
- 从模式(Slave Mode) → 由其他外设(如另一个定时器、DMA、ADC)触发计数。
计数器通过外部信号驱动(External Clock Mode)在外部时钟模式下,计数器可以通过 ETR(外部触发输入引脚)或 TIx(输入捕获引脚)驱动。ETR 模式(外部触发时钟模式 1):定时器通过 ETR 引脚接收外部脉冲信号,每个脉冲使计数器递增。浮空输入
TIx 模式(外部触发时钟模式 2):定时器从 TI1 或 TI2(输入捕获通道)接收外部信号。在这里
可以计数外部脉冲信号,即每当输入引脚检测到上升沿(或下降沿)时,计数器递增或递减。在 STM32 中,可以使用输入捕获通道(TIMx_CHx)作为外部时钟源。
就是这样的,输入的信号有两个边沿,哪个是你要的?反正都是要设置的。红外编码器测速:电机上的旋转编码器每转一圈输出多个脉冲,定时器可以统计脉冲数量,从而计算速度。就是这样的了
计数按钮按下次数:每次按下按钮,定时器计数 +1。TIM3 通过 TI1(输入引脚)接收外部脉冲,每次脉冲计数器 +1。就像这样
在 STM32 中,定时器可以通过其他外设(如 DMA、ADC、UART)产生的事件触发计数:TRGO就在这里
都有触发
基本定时器就会简单点
- 触发 ADC 采样:定时器控制 ADC 采样速率(如 PWM 触发 ADC)。
- 触发 DMA 传输:定时器产生中断,自动触发 DMA 传输数据。
- 触发另一个定时器:两个定时器级联,比如 TIM1 控制 TIM2。
需要对某个信号进行定时采样(也就是隔一段时间,比如说2ms)。OK,这里看个ADC
从这里进去的
还有一个计数模式:
- 递增模式(Up Mode):计数器从 0 递增到 ARR,然后回到 0。
- 递减模式(Down Mode):计数器从 ARR 递减到 0,然后回到 ARR。
- 中心对齐模式(Center-Aligned Mode):计数器先递增到 ARR,然后递减到 0,形成对称 PWM 波形。