实验五: 时钟中断实验
一、 实验目的
熟悉定时器初始化的步骤;
熟悉定时器控制寄存器(TCR)的含义和使用;
熟悉定时器中断的原理和应用。二、 实验内容
本实验要求编写一个简单的定时器中断程序,设置一定的周期控制信号实验五: 时钟中断实验
一、 实验目的
熟悉定时器初始化的步骤;
熟悉定时器控制寄存器(TCR)的含义和使用;
熟悉定时器中断的原理和应用。二、 实验内容
本实验要求编写一个简单的定时器中断程序,设置一定的周期控制信号控制Xf 引脚输出电平的周期性变化。当定时器中断产生时可以观察到XF 引脚输出电平周期性变化。
三、 实验原理
C5400 的定时器是一个倒数定时器,它可以被设定的状态位实现停止、重启动、重设置或禁止。定时器在复位后就处于运行状态, 为了降低功耗可以禁止定时器工作。应用中可以用定时器来产生周期性的CPU 中断或者脉冲输出。定时钟主要包含三个部分:主计数器(TIM)、周期寄存器(PRD)、控制寄存器(TCR)。TIM 用于重载PRD 的值,预定标计数器(PSC)用于重装周期寄存器(TDDR)的值。
定时器产生中断的计算公式为:
T
INT
= 1 * 1
t TDDR + 1
c
* 1
PRD + 1
,其中t
为CLKOUT 的周期
c
定时器由三个寄存器组成:TIM、PRD、TCR。 TIM:定时器寄存器,用于装载周期寄存器数值并自减 1. PRD:周期寄存器,用于转载定时器寄存器。
TCR:定时器控制寄存器,包含定时器的控制状态为。定时器初始化:
TCR 的TSS 位写 1 以停止定时器
装载PRD
初始化TCR 中的TDDR,并对 TCR 中的TSS 清 0,对 TRB 置 1 来重装载定时器周期
设置定时器中断方法(INTM=1)如下:
FIR 中的TINT 写 1,以清除挂起的定时器中断
IMR 的TINT 置 1,启动定时器中断
启动全部中断,INTM 置 0
在RESET 后,TIM 和PRD 被设置为最大值(FFFFH),TCR 中的TDDR
置 0
定时控制寄存器(TCR)
定时器的工作方式
设定预定标计数器中的当前数值
启动或停止定时器
重装载定时器
设置定时器的分频值四、 试验结果
:
.mmregs
.def CodeStart
.def TINT0_ISR Timer0 STACK .usect "STACK",10H
K_TCR_SOFT
.set
0B<<11
K_TCR_FREE
.set
0B<<10
K_TCR_PSC
.set
0B<<6
K_TCR_TRB
.set
0B<<5
K_TCR_TSS
.set
0B<<4
K_TCR_TDDR
K_TCR .set
.set
1001B<<0
K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TC R_TDDR
K-TCR_STOP .set 1B<<4
.data DATA_DP:
XF_Flag: .w
苏大DSP报告5 来自淘豆网m.daumloan.com转载请标明出处.