|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、CPU定时器概述
# M4 }4 Z7 v& I* e9 @% \1 {DSP为了精确控制时间,以满足控制某些特定事件的要求,定时器是不可缺少的内容。
, t: _# ]/ m0 X0 |! R9 U
. B% R+ \, J' \, n6 S+ r5 b二、CPU定时器工作原理
( H/ \, S3 P; J# K3 c+ c0 P(1)在CPU定时器工作前,先要根据实际的需求,计算好CPU定时器周期寄存器的值,然后给周期寄存器PRDH:PRD赋值。
/ v8 T" C0 F. A. g- e(2)启动定时器开始计数,PRDH:PRD里面的值装在金定时器计数寄存器TIMH:TIM中。" B+ T" ?; k1 [7 H( F" _
(3)计数器TIMH:TIM里面的值每隔一个TIMCLK就减小1,直到计数到0) ?/ J" B$ w6 J5 _6 ?( q
(4)此时,CPU计时器会产生一个中断信号。3 d7 z2 w. D) v% m5 d
(5)完成一个周期的计数后,在下一个定时器输入时钟周期开始时,周期寄存器PRDH:PRD里面的值重新装载如计数器寄存器TIMH:TIM中
9 Z- V6 G) D" J! ^, H9 S, k- M一个定时器周期所经历的时间就等于(PRDH:PRD+1)×TIMCLK
$ d# M3 m `1 T% [% k! {, [8 X) G2 D
其中,TIMCLK由TDDRH:TDDR和PSCH:PSC控制:0 p% Q8 z' h: E; R0 o2 B( v& {1 c! [, r
(1)先给TDDRH:TDDR赋值0 [2 z* k3 }: D- Q* f
(2)装载入PSCH:PSC中,每隔一个STSCLKOUT脉冲,PSC中的值减1,PCS中值为0的时候,输出一个TIMCLK,从而使TIM减16 N" l: E `' ^3 L: f* ]+ F: [7 U
一个TIMCLK就等于TDDR+1个系统时钟时间
b( s: F- ^; j& B N( G" Z- ]3 O( F6 C5 P3 H) E n
三、CPU定时器的配置函数9 d9 f# a) `- d0 N
调用方法:' i0 E1 ~2 O" y. [
1 o; m' z3 ]1 O: ~! {9 G# B; KConfigCpuTimer(&CpuTimer0, 150, 1000000);
; `; W) e0 [! F7 j- X2 A# e1
- H d7 L0 x H# J1 J6 l, J第一项为CPU定时器序号,第二项为CPU主频,第三项为时间周期设置,若要设置周期为1s,则设置为1*1000000- K" D$ y' |8 @" @: _
2 |, r" J$ }) R& k- c7 d- z
! h/ B5 p" y7 l/ P
|
|