tms320lf2407考试_tms320lf2407 开发环境_tms320lf2407(33)

电脑杂谈  发布时间:2017-01-30 03:04:38  来源:网络整理

(2)捕获控制寄存器B(CAPCONB),映射地址:7520h 。

CAPCONB与CAPCONA各位的意义相同。

2.捕获FIFO状态寄存器

CAPFlFOx中包括捕获单元的3个FlFO堆栈的状态位。如果CAPFlFOx的状态位正在更新的同时(因为一个捕获事件)向CAPFlFOx状态位写数据,写数据优先。

CAPFlFOx寄存器的写操作在编程中很有用。例如,如果

“01”写入CAPFlFOx位,则EV模块会认为FIFO有一个输入。随后,每次FIFO获得一个新值,则将产生一个捕获中断。

(1)捕获FlFO状态寄存器A(CAPFlFOA),

映射地址:7422h

捕获FlFO状态寄存器A(CAPFlFOA)各位的意义如下:

位15-14 保留位。

位13-12 CAP3FlFO 。捕获单元3的FlFO状态位

00 空

01 有一个输入

10 有两个输入

11 有两个输入并又捕获到一个,第一个输入已丢失。

位11-10 CAP2FlFO 。捕获单元2的FlFO状态位

00 空

01 有一个输入

10 有两个输入

11 有两个输入并又捕获到一个,第一个输入已丢失。

位9-8 CAP1FlFO 。捕获单元1的FlFO状态位

00 空

01 有一个输入

10 有两个输入

11 有两个输入并又捕获到一个,第一个输入已丢失。

位7-0 保留位

(2)捕获FlFO状态寄存器B(CAPFlFOB),

映射地址:7522h

与捕获FlFO状态寄存器A(CAPFlFOA)各位的意义相同。

6.8.4 捕获单元FIF0堆栈每个捕获单元有一个2级深度FlFO堆栈。任何一个

FlFO堆栈的2级寄存器都是只读寄存器,它保存着相应的捕获单元捕获的旧计数器值。因此,对FlFO堆栈的一个读访问总是读出捕获到堆栈中的旧计数器值。

当位于FlFO堆栈顶部寄存器中的计数器值被读出时,

FlFO堆栈底部寄存器的新计数器值(如果有的话)就会被压入项部寄存器。

如果读取了底层寄存器的值,那么捕获FlFO状态寄存器的相应位将发生变化。

如果读取前捕获FlFO状态寄存器的相应位为10或11,

则读取后变成为01,即堆栈中只有一个值。

如果读取前捕获FlFO状态寄存器的相应位为01,则读取后变成为00,即堆栈为空。

(1)第1次捕获当捕获单元的输入引脚出现一个指定的转换时,选定的GP定时器的计数器值就会被捕获,如果堆栈是空的,这个计数器值就会被写入到FlFO堆栈的项层寄存器。同时,相应的状态位被设置为0。

如果另外一个捕获发生之前对FlFO堆栈进行了读访问,

则FlFO状态位被复位为00。

(2)第2次捕获如果在以前的捕获的计数值被读取之前,又发生一次捕获,那么捕获的计数器值就会进入底部寄存器。同时,

寄存器中相应的FlFO状态位被置为10。当在另外一次捕获之的读FlFO堆栈时,顶部寄存器中的旧计数器值被读出,底部寄存器中的新计数器值被压入顶部寄存器,相应的状态位设置为01。

第2捕获会将寄存器相应的捕获中断标志位置1,如果中断没有被屏蔽,则会产生一个中断请求。

(3)第3次捕获当FlFO堆栈中已有两个计数器值,这时如果又有一个捕获发生,堆栈顶部寄存器中最旧的计数器值被推出并且丢失,然后堆栈底部寄存器的计数器值被向上一次压入到顶部寄存器,新捕获的计数器值被写入底部寄存器,并巳状态位设置为11,表明一个或更多的旧计数器值被丢失。

第3次捕获会将寄存器相应的捕获中断标志位置1,如果中断没有被屏蔽,则会产生一个中断请求。

6.8.5 捕获中断当一个捕获单元执行了一次捕获,且FlFO中至少有一个捕获到的计数值时(CAPFlFO位不为0),则相应的中断标志位置1。如果该中断没有被屏蔽,则会产生一个外设中断请求信号。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-29489-33.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...