单片机MSP430入门理论⑧--定时器模块-定时器A③
上期大概给大家汇总介绍了,定时器模块中定时器A的TACTL控制寄存器,TACTL是用来设置时钟,定时器模式,清除,定时器中断等基础功能的
本期将继续介绍定时器A,这次将整理一些关于定时器A的,其他寄存器的用法以及功能
1.0 下面要说的是TAR寄存器,这个寄存器很简单,就是定时器A用来计数的,也可以读写,只不过要注意当计数时钟不是MCLK时,写入前应停止计数,因为他与CPU时钟不同步,可能引起时间竞争
2.0 相对应的TACCRx寄存器,当比较模式时,TACCRx保存着你设置的用来跟定时器A实际计数值TAR比较的值,而当捕获模式时,TACCRx的就会被TAR的值覆盖
3.0 捕获/比较寄存器TACCTLx
CMx Bit 15-14 捕获模式
00 不捕获
01 上升沿捕获
10 下降沿捕获
11 上升沿下降沿都捕获
CCISx Bit 13-12 捕获信号的输入端选择,具体可以看下芯片IO配置
00 CCIxA
01 CCIxB
10 GND
11 Vcc
SCS bit 11 选择输入捕获信号与定时器选择的时钟源信号是同步还是异步,
在实际操作中,经常使用同步捕获模式,这样的捕获总会是有效的
异步捕获模式允许在请求时立即将捕获中断信号CCIFG置位和捕获定时器值,适用于捕获信号的周期远大于定时器时钟周期的情况,但是,如果定时器时钟和捕获信号发生时间竞争,则捕获寄存器的值可能出错
0 同步捕获
1 异步捕获
SCCI bit 10 同步比较/捕获输入。选择的CCISx(CCLxA,CCLxB,GND,Vcc)输入信号与EQUx信号锁存(一直保持这个信号直到下一次输入改变),并从这个位SCCIx读取状态
注解:EQUx信号是定时器比较模式下的一个输出信号,3个比较/捕获寄存器就有3个独立的比较器信号。
当TAR 的值大于等于TACCR0中的数值时,EQU0=1;
当TAR 的值等于相应的TACCR1或TACCR2的值时,EQU1=1或 EQU2=1。
Unused bit 9 空
CAP bit 8 选择捕获模式还是比较模式
0 比较模式
1 捕获模式
注意:在通过比较捕获寄存器CCTLx的CAP从比较模式切换为捕获模式时,不应同时进行捕获,会出现不可预料的事情,应该先切换模式,再捕获
OUTMODx bit 7-5 选择输出模式,模式2,3,6,7对于TACCR0没用,因为EQUx=EQU0
000 输出
001 置位
010 PWM 翻转/复位
011 PWM 置位/复位
100 翻转
101 复位
110 PWM 翻转/置位
111 PWM 复位/置位
CCIE bit 4 比较/捕获的中断开关,控制这个位可以打开CCIFG标志的响应中断
0 禁用中断
1 打开允许中断响应
CCI bit 3 捕获/比较的输入,选择的什么输入信号可以由这个位读出
捕获模式:由比较/捕获寄存器TACCTLx的CCIS0和CCIS1选择的输入信号通过该位读出
比较模式:CCIx复位
OUT bit 2 输出模式高低电平,不过当OUTMODx输出模式为000时,这里直接控制输出状态
0 为低电平
1 为高电平
COV bit 1 捕获溢出标志
0 未发生捕获溢出
1 发生捕获溢出
注意:如果工作模式CAP=0为比较模式时,捕获信号发生复位,没有使COV置位的捕获事件,而当CAP=1时,如果捕获寄存器的值被读出后又再次发生捕获事件,则COV置位,程序可以检测COV来断定原值读出前是否又发生捕获事件,读捕获寄存器时不会使溢出标志复位,需要软件复位
CCIFGx 捕获比较中断标志
捕获模式:寄存器CCRx捕获了定时器TAR值时置位
比较模式:寄存器TAR值等于寄存器CCRx值时置位
以上内容大多都是在网络上摘抄下来整理的,供大家学习参考的,如涉及到版权请私聊
本文暂时没有评论,来添加一个吧(●'◡'●)