TMS320C5000系列DSP原理及应用(第二版)课件 第1--8章 片内外设--- DSP芯片C语言开发 .pptx
;内容;6.1时钟发生器;返回;CLKMD各位含义:如图P149
;若4)锁定时间与时钟频率关系:
例1若要从DIV方式转到PLL×3方式,已知CLKIN=13MHZ,,可求得PLKCOUNT=41(十进制数),再在程序中加入如下指令就行了。
STM#0010000101001111b,CLKMD
241PLL
PLLMULPLLMUL+1
见表P150表6-3
;例2切换时钟从PLL×3模式到÷2模式,关PLL,进入IDLE3,IDLE3唤醒后,从DIV进入PLL×3方式,PLKCOUNT=64(锁定时间值)
STM #0,CLKMD ;切换DIV模式
TstStatu:LDM CLKMD,A
AND #01b,A ;查询
BC TstStatu,ANEQ
STM #0b,CLKMD;resetPLKON_OFF
;whenstatusisDivmode
IDLE3
(AfterIDLE3WAKE-UP-SWITCHthePLLfromDivmodetoPLL×3mode)
STM #0010001000000111b,CLKMD
;PLKCOUNT=64(十进制);低功耗(节电)模式;6.2中断;中断;复位操作;可屏蔽硬件中断信号产生后能否引起
CPU执行相应的中断服务程序ISR,还取决
于以下4点:
ST1中INTM=0。
CPU当前没有响应更高优先级的中断。
IMR中对应的中断屏蔽位置1。
IFR中对应的中断标志位置1。;2、中断标志寄存器IFR和中断屏蔽寄存器IMR
IFR是一个MM的CPU寄存器,中断时IFR中相应的中断标志位置1。如下4种情况会使IFR中相应的中断标志位置0:
①
IMR也是MM的CPU寄存器,用来屏蔽外(内)部中断。开放中断的条件:
①ST1中INTM=0。
②IMR中某位为1。
注意:和;表6-3 ’C541的中断标志寄存器IFR
;中断向量地址=
PMST中IPTR(中断向量指针,9位)+
左移2位后中断向量序号(7位);P258附录3;6.2.2处理过程(上);第二阶段:响应中断
只有满足以下条件才能响应:
1.优先级别最高(当同时出现一个以上中断时)。
2.STl中的INTM位为0。
3.IMR中的相应位为1。;处理过程(下);如图P156 Fig6-6
注意:BRC比ST1中BRAF先恢复,若BRC恢复前,ISR中BRC=0,那么先恢复BRAF位将被清0。
示例:INT_2:NEG A ;A变负
RETE ;开中断从中断返回
?
?
?
?
?
?
?
?
;6.2定时器;定时器;;(1)TCR:各位含义见教材P160
TCR是一个16位存储器映象定时控制寄存器,包含的控制位有下列功能:
▲控制定时器模式
▲指定定时器预先定标计数器的当前计数值
▲重新加载定时器
▲启动、停止定时器
▲定义定时器的分频系数
(2)TIM与PRD:
这两种REG共同工作提供定时器的当前计数值。
在正常情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。
当系统复位(=1)或
定时器复位(TRB=1)时,
PRD中的时间常数重新加载到TIM。
;C54x定时器控制寄存器TCR:;2)定时器的操作;3)定时器中断周期;例:假定CLKOUT频率=10MHZ,利用4加载TDDR,以使每5个CLKOUT周期TIM减1;利用TIM的开始值(199)加载PRD。问:用Timer产生时钟信号的频率是多少?
?
?
=107×=10kHZ
;4)定时器初始化步骤:
先将TCR中的TSS位置1,关闭定时器
加载PRD
重新加载TCR,启动定时器
开放定时中断,必须(假定INTM=