|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、CPU定时器概述
, U7 e+ L) j) G2 L: r2 B8 f1 ODSP为了精确控制时间,以满足控制某些特定事件的要求,定时器是不可缺少的内容。
. z$ u- R7 w$ a
" R; c5 |. S' s二、CPU定时器工作原理
4 V. `2 o2 d' m' ~(1)在CPU定时器工作前,先要根据实际的需求,计算好CPU定时器周期寄存器的值,然后给周期寄存器PRDH:PRD赋值。
8 ~' n$ C" x5 L2 k9 g(2)启动定时器开始计数,PRDH:PRD里面的值装在金定时器计数寄存器TIMH:TIM中。
3 n J9 e' m% P5 |" W5 I8 S* F(3)计数器TIMH:TIM里面的值每隔一个TIMCLK就减小1,直到计数到0- `* e s* O( M. X" g2 b: N( w
(4)此时,CPU计时器会产生一个中断信号。! p' O& o$ X* O' x4 U% }4 a
(5)完成一个周期的计数后,在下一个定时器输入时钟周期开始时,周期寄存器PRDH:PRD里面的值重新装载如计数器寄存器TIMH:TIM中
) q7 r. z9 {9 W# T/ ~' b! G一个定时器周期所经历的时间就等于(PRDH:PRD+1)×TIMCLK
5 t& a2 U8 S7 j3 }2 k$ V! j0 m) ^2 ^/ | Q/ d5 b
其中,TIMCLK由TDDRH:TDDR和PSCH:PSC控制:
* d: M, ~. ]$ \- y/ B7 \(1)先给TDDRH:TDDR赋值
# x; z4 |2 Z" Y(2)装载入PSCH:PSC中,每隔一个STSCLKOUT脉冲,PSC中的值减1,PCS中值为0的时候,输出一个TIMCLK,从而使TIM减1- ^/ F* o% q! |2 V( ?+ f
一个TIMCLK就等于TDDR+1个系统时钟时间* O2 P6 d5 R+ C: s2 ~# W
8 P: [0 H/ d Z5 s
三、CPU定时器的配置函数
" L" w0 X- Y. D. A$ P" `调用方法:# N2 B$ L1 r; z/ ?* ?( c4 @
/ [; R5 X- C! O/ D6 n) hConfigCpuTimer(&CpuTimer0, 150, 1000000);
8 V8 { X+ S2 Q/ U1
- l; c" X, C) q3 T+ g5 t1 P第一项为CPU定时器序号,第二项为CPU主频,第三项为时间周期设置,若要设置周期为1s,则设置为1*1000000
( q* z4 d# \4 [! N0 A+ c L5 a W2 f/ v4 e( d) N ^
$ |- j0 N3 ?( n% j6 f" |# x5 y
|
|