Learning ADSP-TS201系列--定时计数器Timer




原创作品,转载请注明原作者及地址!

by 飞鸿惊雪

http://blog.csdn.net/niyufeng




Learning ADSP-TS201系列--索引


1 Learning ADSP-TS201系列--重要参考

2 Learning ADSP-TS201系列--EZ-KIT Lite评估板硬件资源

3 Learning ADSP-TS201系列--Flag Pins按键和LED灯

4  Learning ADSP-TS201系列--Interrupt Pin






Learning ADSP-TS201系列--定时计数器Timer








定时器使用SOC-BUS

ADSP-TS201定时器使用S-BUS该时钟频率为:SOCCLK = CCLK/2


在电路板背面,默认只焊接了一个电阻,因此SCLKRAT=001PLL5

CCLK = 500MHz

SOCCLK = 250MHz

1/250MHz = 4 x e-9 s = 4ns

如果每0.4秒中断一次,则需要计数0.4s / 4ns = 100000000次。

Learning ADSP-TS201系列--定时计数器Timer_第1张图片


Learning ADSP-TS201系列--定时计数器Timer_第2张图片 



置位INCTL寄存器中的TMRxRN位,开始定时计数;

这时TMRINxH/L ==》 TIMERxH/L

TMRxRN清零则暂停定时计数;再置位又会继续定时计数;

只有改变初始寄存器TMRINxH/L的值才会改变TIMERxH/L值;上面的TMRxRN位不会影响TIMERxH/L值!

当定时器x发生中断时,锁存器ILATx中的高优先级INT_TIMERxLP,低优先级INT_TIMERxHP都会置位,或者清零。(最终使用不同的优先级在于IMASK的设置!





2 定时计数器Timer涉及到的寄存器

涉及到中断的主要有以下这几个寄存器:ILAT,IMASK,PMASK,以及SQCTL下的GIE位控制全局中断,和INTCTL控制IRQ3-0的触发方式、TIME1-0的启动。

ILAT,IMASK,PMASK这三者“相与”指明了正在执行的中断为哪一个。

ILAT:中断锁存寄存器,只要发生中断相应位置1

IMASK:中断屏蔽寄存器,只有置1才允许响应相应的中断;

PMASK:锁存正在执行的中断,如果允许中断嵌套,只有在高于目前PMASK位的中断才可以响应。


Learning ADSP-TS201系列--定时计数器Timer_第3张图片




2.1 ILAT  IMASK  PMASK (H)寄存器

注意:我们本次要试验定时器,就在(H)寄存器中!

Learning ADSP-TS201系列--定时计数器Timer_第4张图片


Learning ADSP-TS201系列--定时计数器Timer_第5张图片



2.2 ILAT  IMASK  PMASK (L)寄存器

Learning ADSP-TS201系列--定时计数器Timer_第6张图片


Learning ADSP-TS201系列--定时计数器Timer_第7张图片



2.3 INTCTL寄存器



1 INTCTL控制IRQ3-0的触发方式。

2 INTCTL中断控制寄存器的TMRxRN位来控制计数器的启动(1)和停止(0

复位后TMRxRN位为0,计数器不工作



2.4 SQCTL寄存器


Learning ADSP-TS201系列--定时计数器Timer_第8张图片


SQCTL下的SQCTL_GIE位控制全局中断。

SQCTL还有两个别名SQCTLSTSQCTLCL



2.5 TMRINxH/L

TMRINxH/L表示初始值



2.6 TIMERxH/L

TIMERxH/L表示当前运行值








你可能感兴趣的:(Learning ADSP-TS201系列--定时计数器Timer)