您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > TMS320F28027课件-第四讲-定时器
教材:《32位数字信号控制器原理及应用》《DSP原理及应用》Lecture4CPUTimer黄灿水2015.3Lecture4CPUTimer一、CPUTimer模块概述3个32位的CPU定时器(Timer0/1/2)可选时基:SYSCLKOUT、INTOSC1、INTOSC2、XCLKIN16位时钟前分频(TPRH:TPR)3个可预设、重载的周期寄存器(PRDH:PRD)3个32位减计数器(TIMH:TIM)3个CPU定时器中断信号(TINT0、TINT1、TINT2)CPUTimer1可为BIOS提供时基CPUTimer2可为实时操作提供时基Lecture4CPUTimer一、CPUTimer模块概述CPU定时器Lecture4CPUTimer一、CPUTimer模块概述CPU定时器中断信号和输出信号二、CPUTimer工作原理定时时间T=(TIMH:TIM+1)*(TPRH:TPR+1)*定时器时钟Lecture4CPUTimer三、CPUTimer寄存器名称地址大小(W)描述TIMER0TIM0x0C001CPU定时器0,计数器寄存器TIMER0TIMH0x0C011CPU定时器0,计数器寄存器高16位字TIMER0PRD0x0C021CPU定时器0,周期寄存器TIMER0PRDH0x0C031CPU定时器0,周期寄存器高16位字TIMER0TCR0x0C041CPU定时器0,控制寄存器TIMER0TPR0x0C061CPU定时器0,预分频寄存器TIMER0TPRH0x0C071CPU定时器0,预分频寄存器高16位字TIMER1TIM0x0C081CPU定时器1,计数器定时器TIMER1TIMH0x0C091CPU定时器1,计数器定时器高16位字TIMER1PRD0x0C0A1CPU定时器1,周期寄存器TIMER1PRDH0x0C0B1CPU定时器1,周期寄存器高16位字TIMER1TCR0x0C0C1CPU定时器1,控制寄存器TIMER1TPR0x0C0E1CPU定时器1,预分频寄存器TIMER1TPRH0x0C0F1CPU定时器1,预分频寄存器高16位字Lecture4CPUTimerLecture4CPUTimer名称地址大小(W)描述TIMER2TIM0x0C101CPU定时器2,计数器定时器TIMER2TIMH0x0C111CPU定时器2,计数器定时器高16位字TIMER2PRD0x0C121CPU定时器2,周期寄存器TIMER2PRDH0x0C131CPU定时器2,周期寄存器高16位字TIMER2TCR0x0C141CPU定时器2,控制寄存器TIMER2TPR0x0C161CPU定时器2,预分频寄存器TIMER2TPRH0x0C171CPU定时器2,预分频寄存器高16位字三、CPUTimer寄存器(续)Lecture4CPUTimer三、CPUTimer寄存器1、计数器寄存器-TIMERxTIMH:TIM(x=0,1,2)计数器寄存器(TIMH:TIM):每个时钟周期递减一次,当(TIMH:TIM)递减到零时,(TIMH:TIM)寄存器自动装入(PRDH:PRD)寄存器的周期值,并产生定时器中断(TINTx)信号。Lecture4CPUTimer三、CPUTimer寄存器2、周期寄存器-TIMERxPRDH:PRD(x=0,1,2)周期寄存器(PRDH:PRD):当(TIMH:TIM)递减到零时,在下个定时器输入时钟周期开始时(TIMH:TIM)寄存器装入(PRDH:PRD)寄存器包含的周期值。当定时器控制寄存器(TCR)的定时器重装位(TRB)置位时,(PRDH:PRD)的内容也被装入到(TIMH:TIM)中。Lecture4CPUTimer三、CPUTimer寄存器3、控制寄存器-TIMERxTCR(x=0,1,2)BIT15:中断标志位。写0无效,写1清零。BIT14:中断使能位。写0禁止,写1使能。BIT11-10:仿真模式。00下个时钟停,01下个周期停10/11自由运行Lecture4CPUTimer三、CPUTimer寄存器3、控制寄存器-TIMERxTCR(x=0,1,2)BIT5:重载位。写0无效。写1时,(TIMH:TIM)装入(PRDH:PRD)的值,并且,预分频器计数器(PSCH:PSC)装入(TDDRH:TDDR)的值。读出总为0。Lecture4CPUTimer三、CPUTimer寄存器3、控制寄存器-TIMERxTCR(x=0,1,2)BIT4:停止状态位。读出0表示TIMER正在运行,读出1表示TIMER被停止。写0启动或重启TIMER,复位时被清零,TIMER立刻启动。写1停止TIMER。Lecture4CPUTimer三、CPUTimer寄存器4、预分频寄存器-TIMERxTPRH:TPR(x=1,2,3)PSCH:PSC-预分频计数器。每个定时器时钟(PSCH:PSC)减1,到达0后下一个定时器时钟,(PSCH:PSC)装入(TDDRH:TDDR)的值,且(TIMH:TIM)减1。置位(TRB)时PSCH:PSC也被重装。复位PSCH:PSC被清0。Lecture4CPUTimer四、编程实现A、寄存器定义:CpuTimer0Regs.寄存器名.bit.位名CpuTimer1Regs.寄存器名.bit.位名CpuTimer2Regs.寄存器名.bit.位名寄存器名:TIM(32位)、PRD(32位)、TCR(16位)、TPRH(16位)、TPR(16位)例如:CpuTimer0Regs.TCR.bit.TSS=0;CpuTimer1Regs.TCR.all=0x4001;CpuTimer1Regs.PRD.all=0x00000000;1、DSP2802x_CpuTimers.h和DSP2802x_CpuTimers.cLecture4CPUTimer四、编程实现B、定时器常用函数voidInitCpuTimers();voidConfigCpuTimer(structCPUTIMER_VARS*Timer,floatFreq,floatPeriod);StartCpuTimer0();StopCpuTimer0();ReloadCpuTimer0();ReadCpuTimer0Counter();ReadCpuTimer0Period();1、DSP2802x_CpuTimers.h和DSP2802x_CpuTimers.cLecture4CPUTimer四、编程实现1、DSP2802x_CpuTimers.h和DSP2802x_CpuTimers.cB、定时器常用函数voidConfigCpuTimer(structCPUTIMER_VARS*Timer,floatFreq,floatPeriod);例如:ConfigCpuTimer(&CpuTimer0,60,1000000);上述语句定义Cputimer0时钟是60MHz,周期是1sLecture4CPUTimer五、Timer配置步骤步骤1:根据定时时间计算PRD和TPR数值,及时钟分频值步骤2:外设定时器时钟使能PCLKCR3(10-8位)步骤3:CPUTimer2时钟源选择、预分频CLKCTL(7-3位)步骤4:相应的中断设置(参考PIE)步骤5:引脚复用设置(参考GPIO)步骤6:CPUTimer初始化步骤7:启动CPUTimer步骤8:编写CPUTimer中断服务子程序ThankYou&Question?
本文标题:TMS320F28027课件-第四讲-定时器
链接地址:https://www.777doc.com/doc-5776333 .html