MSP430学习笔记(2)定时器A
向量,属于多源中断,对应的中断标志位CCIFG1~CCIFGx和TAIFG1在读中断向量字TAIV后自动复位。若不访问TAIV寄存器,则需软件清除。 4.如果有Timer_A中断标志位,则TAIV为相应的数据。该数据与PC(程序计数器)相加可使系统自动进入响应的中断服务程序。 3)定时器工作原理: a)停止模式:用于定时器暂停,不发生复位,所有寄存器现在的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。也可通过CLR来清除定时器的方向记忆特性。 b)增计数模式:捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,CCR0为16位寄存器,适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0值相等(或定时器值大于CCR0时),定时器复位并从0开始计数。 i.当定时器值等于CCR0时,设置标志位CCIFG0为1,当定时器从CCR0计数到0时,设置标志位TAIFG为1。 ii.计数过程中还可以通过改变CCR0的值来重置计数周期。当新周期大于旧周期时,定时器会直接增计数到新周期。 c)连续计数模式:在需要65536个时钟周期的定时器应用场合常用连续计数模式。定时器从当前值计数到0FFFFH后又从0开始计数。当定时器从0FFFFH到0时设置标志位TAIFG。 d)增/减计数模式:需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0的2倍。 4)捕获/比较模块:Timer_A捕获/比较的每个模块都可用于捕获事件发生的时间或产生定时间隔。当捕获时间发生或者定时时间到达都将引发中断。捕获/比较寄存器与定时器总线连接,可在满足捕获条件时将TAR的值写入捕获寄存器;可在TAR的值与比较器值相等时设置标志位。通过CCTLx中的CAPx选择模式,该模块可用于捕获模式,也可用于比较模式。用CCISx1和CCISx2选择捕获的输入信号源,输入信号可以是来自外部引脚的信号,也可以是来自内部的信号。 a)捕获模式:这时如果在选定的引脚上发生设定的脉冲触发沿,则TAR的值写入CCRx。捕获完成后CCIFGx被置位,如果GIE和CCIEx允许,则产生中断。PA:捕获信号与定时器时钟同步,将捕获/比较中断标志置位,并将定时器数值存入捕获寄存器。他们同步特性可避免定时器和捕获信号的时间竞争。非同步信号支持低速定时器的时间应用。捕获时间与定时器时钟可能产生时间竞争,因而导致捕获数据无效。 b)比较方式主要用于软件或者应用硬件产生定时,还可以为D/A转换、马达控制产生PWM信号。独立的输出模块被分配给各个捕获/比较寄存器的每一个,输出模块可以独立运行于比较功能,或以各种方式触发。当TAR的值大于或等于CCR0的值时,EQU0=1;当TAR的值等于相应的CCR1或CCR2时,EQU1=1或EQU2=1。 5)输出单元:每个捕获/比较模块都包含一个输出单元,用于产生输出信号。每个输出单元有8种工作模式,由OUTMOD0~3决定。 6)Timer_A实现PWM: 如果Timer_A定时器的计数器工作在增计数模式,输出采用模式7(复位/置位模式),则可利用寄存器CCR0控制PWM波形的周期,用某个寄存器CCRx来控制占空比。这样Timer_A就能产生任意占空比的PWM波。 改变占空比的方法是:保持CCR0的值(周期不变),改变CCRx的值(占空比变)
MSP430学习笔记定时器 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)