|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、CPU定时器概述
' H- j0 G. P+ W$ O l; BDSP为了精确控制时间,以满足控制某些特定事件的要求,定时器是不可缺少的内容。
/ p ^1 y7 x8 Y6 p$ ^9 { J2 x l
7 K( ~; V8 y) s. s二、CPU定时器工作原理, f( M$ F# }0 y7 k
(1)在CPU定时器工作前,先要根据实际的需求,计算好CPU定时器周期寄存器的值,然后给周期寄存器PRDH:PRD赋值。
$ X2 o7 r& O- O, {; V(2)启动定时器开始计数,PRDH:PRD里面的值装在金定时器计数寄存器TIMH:TIM中。' r. f9 K$ q/ C7 i: C8 R+ Z
(3)计数器TIMH:TIM里面的值每隔一个TIMCLK就减小1,直到计数到0& W# \8 x# Y' Q1 \
(4)此时,CPU计时器会产生一个中断信号。
3 ?+ z& {- @2 q( v(5)完成一个周期的计数后,在下一个定时器输入时钟周期开始时,周期寄存器PRDH:PRD里面的值重新装载如计数器寄存器TIMH:TIM中
3 w' w8 f$ |* |! n& \+ z一个定时器周期所经历的时间就等于(PRDH:PRD+1)×TIMCLK
7 f8 U h7 W2 i {7 a T5 K' e4 ?7 o& W: ^. _' E
其中,TIMCLK由TDDRH:TDDR和PSCH:PSC控制:7 X1 x2 g: p5 M5 Z( r, k( A6 o* r
(1)先给TDDRH:TDDR赋值
- s4 r/ C/ z' h5 t(2)装载入PSCH:PSC中,每隔一个STSCLKOUT脉冲,PSC中的值减1,PCS中值为0的时候,输出一个TIMCLK,从而使TIM减1
/ x( p& ]2 @/ j3 m; @! g一个TIMCLK就等于TDDR+1个系统时钟时间
6 c2 T$ c! \" N* C' f- v- ?) B
) S" h9 c4 V2 @" |' M* ]' Y x三、CPU定时器的配置函数
! `' {( [$ s; z ]调用方法:
' T4 b. s, P& J2 C' m6 a& d7 P6 t" x
ConfigCpuTimer(&CpuTimer0, 150, 1000000);
' d& k9 r( z, d) k11 P. v# G b: \/ M5 z
第一项为CPU定时器序号,第二项为CPU主频,第三项为时间周期设置,若要设置周期为1s,则设置为1*10000007 t6 X3 [# r* `
9 l6 e6 p" Y: a- I7 h. ?) a/ G# ~$ F2 |9 S H5 ^2 H
|
|