定时器工作原理
软件定时
缺点:不精确、占用
CPU
资源
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
使用精准的时基,通过硬件的方式,实现定时功能。定时器核心就是计数器。
定时器分类:
-
基本定时器(TIM6~TIM7)
-
通用定时器(TIM2~TIM5)
-
高级定时器(TIM1和TIM8)
STM32F103C8T6定时器资源:
通用定时器介绍:
1
)
16
位向上、向下、向上
/
向下自动装载计数器(
TIMx_CNT
)。
2
)
16
位可编程
(
可以实时修改
)
预分频器
(
TIMx_PSC
)
,计数器时钟频率的分频系数为
1
~
65535
之间的
任意数值。
3
)
4
个独立通道(
TIMx_CH1
~
4
),这些通道可以用来作为:
A.输入捕获
B.输出比较
C.
PWM
生成
(
边缘或中间对齐模式
)
D.单脉冲模式输出
4
)可使用外部信号(
TIMx_ETR
)控制定时器和定时器互连(可以用
1
个定时器控制另外一个定时器)
的同步电路。
5
)如下事件发生时产生中断
/
DMA
:
A.更新:计数器向上溢出
/
向下溢出,计数器初始化
(
通过软件或者内部
/
外部触发
)
B.触发事件
(
计数器启动、停止、初始化或者由内部
/
外部触发计数
)
C.输入捕获
D.输出比较
E.支持针对定位的增量
(
正交
)
编码器和霍尔传感器电路
F.触发输入作为外部时钟或者按周期的电流管理
定时器计数模式:
定时器溢出时间计算公式: