MSP430 Capture/Compare Blocks(原创)
0赞最近看到研三的师兄姐们找工作,参加各种面试、笔试,一个没听说的公司也可以把你打击的无地自容,毕业生说找不到工作,公司也抱怨招不到合适的人才,竟是这番场景。貌似今年不是很景气的样子,还没搞好实体经济就忙着挖掘虚拟经济的宝库,希望不会是日本的下场。
本着有始有终的原则,下面让我们看一下定时器A部分的捕获/比较模块,以及它的输出模式。
在定时器A中有三个完全相同的比较/捕获模块。其中的任何一个都可以用作捕获数据或者产生时间间隔。
对控制寄存器的标志位cap置1就选择了捕获模式。捕获模式可以用于记录时间事件,比如速度估算和时间测量通过设置CCISx位来选择捕获输入CCIxA和CCIxB连接的事外部的引脚还是内部的信号。通过CMx位来选择捕获输入新海的触发沿是上升沿、下降沿还是两者都捕获。捕获事件发生于所选择的输入信号的触发沿,当捕获事件发生时,将此时定时器的值复制到TACCRx寄存器中,同时中断标志位CCIFG置位。
在处理捕获的过程中可能会出现一次捕获的数据还没有被读取,然后就产生新的捕获数据的问题。在定时器A通过一个溢出逻辑来对这种事件进行处理。
上面那个图就不解释了,相信学过数电的人看这个图都很容易。溢出逻辑保证对于任何一个捕获/比较寄存器,当第一次捕获数据没有被读取而产生第二次捕获时候,会有标记产生。此时COV位被置位,然后COV位必须由软件清除。
当标志位CAP=0时候就进入比较模式。比较模式主要用于选择PWM波的输出信号或者在特定时间间隔内产生中断。这个工作过程比较好理解,当TAR中的计数值等于TACCRx值的时候:中断标志位CCIFG置位,内部信号EQUx=1,EQUx根据输出模式来影响输出信号,输入信号CCI锁存到SCCI。
时间比较晚了,今天不写了,先发出去了。