1.常见的定时器
滴答(系统)定时器:systick -- 内核
基本定时器:定时 --STM32
通用定时器:定时+PWM+输入捕获+编码 --STM32
高级定时器:通用定时器+死区+刹车(电机) --STM32
窗口看门狗,独立看门狗本质上也是定时器
2.系统定时器实现精准计时/定时
举个例子:
定时炸弹 300
什么时候减到0
更新一次数据的时间 t 300--299需要多长时间
1S更新多少次数据 f
t=1/f
重装载值 300
留给我跑的时间 T=重装载值*t=重装载值/f
定时器重要概念:
重装载值, 计数频率 更新一次数周期
怎么配置能够延时是1ms呢?
SysTick_Config(72000);//一秒响一次 此函数是内核函数,只要程序运行起来便会调用嘀嗒中断Delay.c内的void SysTick_Handler(void)
//f=1/t f=72000000 t=1/72000000s=1/72000ms(执行一条指令需要这些毫秒)
//T---装载时间
3.定时器讲解
1. 选择时钟源 72M时钟
2.配置中断
3.设置重装载值
定时器频率
更新一次数据的时间t=1/f=1/72000000s
需要一个1ms的定时,重装载值填啥?
T=1ms=ARR*t
解出来 ARR=T/t=0.001s/(1/72000000s)=0.001*72000000=72000
需要一个2ms的定时,重装载值填啥?
解出来 ARR=T/t=0.002s/(1/72000000s)=0.002*72000000=144000
系统定时器最大定时周期:
T=2^24/f=2^24/72000000=0.23s
函数计数
注意调用完后需要把Time0赋值为0