菜鸟学习C2000 lesson6之定时器中断
穿越火线刷火麒麟
1-CPU 定时器寄存器
TIMER0T1M      CPU 定时器0计数器寄存器低位
TIMER0T1MH      CPU 定时器0计数器寄存器高位
TIMER0PRD        CPU 定时器0周期寄存器低位
TIMER0PRDH
CPU 定时器0周期寄存器高位
千里送鹅毛礼轻情意重
TIMER0TCR
CPU 定时器0控制寄存器
TIMER0TPR        CPU 定时器0预定标寄存器低位 TIMER0TPRH      CPU 定时器0预定标寄存器高位
(1) TIF 位15,定时器中断标志位。
当定时器减到0时,标志位将置1,可通过软件写1对该位清零,但是只有计数器递减到0,该位才会被置位。
(2) TIE 位14,定时器中断使能位。
如果定时器计数器递减到0,该位置1,定时器将会向CPU 提出中断请求。
(3) FREE 位11。定时器仿真方式:FREE 和SOFT 位是专用于仿真的
(4) TRB 位5。定时器重装位。
当向TRB 写1时,PRDH:PRD 的值装入TIMH :TIM ,并且把定时器分频寄存器TDDRH:TDDR 中的值装入预定标计数器PSCH:PSC 。TRB 位一直读作0.
(5) TSS 位4。定时器停止状态位。
TSS 是停止或启动定时器的一个标志位。要停止定时器,置TSS 为1。要启动或重启动定时器,置TSS 为0.
提供了一个关闭定时器的有效方法包含了两部分的内容外部设备的中断使能位
PSC 位15-8. 定时器预定标器计数器。
PSC是预定标计数器的低8位,PSCH是预定标计数器的高8位。
对每一个定时器时钟周期,PSCH:PSC的值大于0,PSCH:PSC逐个减计数。PSCH:PSC到0后是一个定时器时钟(定时器预定标器的输出)周期,TDDRH:TDDR的值装入PSCH:PSC,定时器计数器寄存器TIMH:TIM减1.
无论何时,定时器重装位TRB由软件置1时,也重装PSCH:PSC。复位时,PSCH:PSC置为0。
TDDR 位7-0. 定时器分频器
TDDR是定时器分频器的低8位,TDDRH是定时器分频器的高8位。
每过一个(TDDRH:TDDR +1)定时器时钟周期,定时器计数器寄存器TIMH:TIM 减1.复位时,TDDRH:TDDR位清0。
当预定标计数器PSCH:PSC值为0,一个定时器时钟源周期后,PSCH:PSC重装TDDRH:TDDR内的值,并使TIMH:TIM减1.
无论何时,用软件置定时器重装位TRB为1,PSCH:PSC就会重装TDDRH:TDDR 的值。
2- CPU 定时器工作
在CPU 定时器工作前,先要根据实际需要,计算好CPU 定时器周期寄存器中的
值,然后给CPU 定时器周期寄存器PRDH:PDR 赋值。 当启动定时器开始计数时,周期寄存器
PRDH:PDR 中的值装载进定时器计数寄存器TIMH:TIM 中,计数器寄存器TIMH:TIM 里面的值每隔一个TIMCLK 就减少1,直到计数到0,完成一个周期的计数。
闹钟到点后会打铃,而CPU 定时器这时就会产生一个中断信号。
在下一个定时器输入时钟周期开始时,周期寄存器PRDH:PDR 里面的值重新装载进定时器计数寄存器TIMH:TIM 中,周而复始地循环下去,一个CPU 定时器(PRDH:PRD+1)TIMCLK 。
TIMCLK 由定时器分频器TDDRH:TDDR 和定时器预定标器PSCH:PSC 来控制,先给定时器分频器TDDRH:TDDR 赋值,然后装载入预定标器PSCH:PSC 中,每隔一个SYSCLKOUT 脉冲,PSCH:PS
郑人买履文言文日本vs哥斯达黎加预测C 中的值减1。当PSCH:PSC 中的值为0的时候,就会输出一个TIMCLK ,从而TIMH:TIM 减1。在下一个定时器输入时钟周期开始时,TDDRH:TDDR 中的值重新装载入PSCH:PSC 中,周而复始地循环下去,因此TIMCLK 就等于(TDDRH:TDDR+1)个系统时钟的时间。  如果想用CPU 定时器来计量一段时间,需要设定的寄存器有2个,1个是周期寄存器PRDH:PRD ;1个是分频器寄存器TDDRH:TDDR 。分频器寄存器TDDRH:TDDR 决定了CPU 定时器计数时每一步的时间,假设系统时钟SYSCLKOUT 的值为X(MHz),那么计数器每走一步,所需时间为:
PSCH 与TIMH 的关系是什么
个人礼仪
定时器的部分与51单片机的定时器有所相似
CPU定时器一个周期计数了(PRDH:PRD+1)次,因此CPU定时器一个周期所计量的时间为:
实际应用时,通常是已知要定时的时间T和CPU的系统时钟X,来求出周期寄存器PRDH:PRD的值。TDDRH:TDDR通常可以取0,如果取0时,PRDH:PRD 的值超过了32位寄存器的范围,那么TDDRH:TDDR可以取其他值,使得PRDH:PRD的值小一些。
3-部分程序解析
(1)
/******************************************************************* 此函数将使用Freq和Period两个参数来对CPU定时器进行配置。Freq以MHz 为单位,Period以us作为单位
*******************************************************************/
在使用CPU定时器时,通常会调用定时器的配置函数,例如ConfigCpuTimer(&CpuTimer0, 150, 1000000)。很多人可能对这个函数还比较疑惑,不知道这个函数的参数是如何设置的。
第一个参数表明用哪个定时器
第二个参数Freq是系统时钟频率,单位是MHz
第三个参数Period是希望实现的CPU周期,例如想要CPU周期为1S,因为Period 单位是US。
中断1一6年级中秋节手抄报
中断系统从上到下分为3级,即CPU级中断、PIE级中断和外设中断。
一、CPU级中断
①中断使能寄存器IER
当某一位的值为1时,相应的中断就被使能。但某一位为0,被屏蔽。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。