赞
踩
ARR:自动重装载值
PSC:预分频系数
TCLK:时钟频率
T(溢出时间)=(ARR+1)*(PSC+1)/Tclk
例如:Tclk=72MHz
ARR=7199
PSC=999
那么 T=7200*1000/72000000=0.1s=100ms=100000us
即每100ms溢出一次 中断计时一次
初始化定时器的时候指定我们分频系数psc,这里是将我们的系统时钟(72MHz)进行分频,然后指定重装载值arr,这个重装载值的意思就是当 我们的定时器的计数值 达到这个arr时,定时器就会重新装载其他值.
例如当我们设置定时器为向上计数时,定时器计数的值等于arr之后就会产生溢出,被清0重新计数,定时器计数的值被重装载一次被就是一个更新(Update)
T(溢出时间)=(ARR+1)*(PSC+1)/Tclk
公式推导详解:
Tclk是定时器时钟源,在这里就是72Mhz
我们将分配的时钟进行分频,指定分频值为psc,就将我们的Tclk分了psc+1,我们定时器的最终频率就是Tclk/(psc+1) MHz
这里的频率的意思就是1s中记 Tclk/(psc+1)M个数 (1M=10的6次方) ,每记一个数的时间为(psc+1)/Tclk ,很好理解频率的倒数是周期,这里每一个数的周期就是(psc+1)/Tclk 秒
然后我们从0记到arr 就是 (arr+1)*(psc+1)/Tclk
举例:比如我们设置arr=7199,psc=9999
我们将72MHz (1M等于10的6次方) 分成了(9999+1)等于 7200Hz
每记录一个数就是1/7200秒
定时器更新(7199+1)*(1/7200)=1s,也就是1s进入一次更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。