• [转]MSP430功能模块详解系列之——TimerA


    定时器A是一个16位的定时/计数器。它有3个捕获/比较寄存器;能支持多个时序控制、多个捕获/比较功能和多个PWM输出;有广泛的中断功能,中断可由计数器溢出产生,也可以由捕获/比较寄存器产生。

    一、TimerA的4种工作模式

    1.停止模式

    用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。

    2.增计数模式

    捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器。因为CCR0为16位寄存器,所以该模式适用于定时器周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。

    3.连续计数模式

    在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到0FFFH后,又从0开始重新计数。

    连续计数模式的典型应用:
    产生多个独立的时序信号。利用捕获比较寄存器捕获各种其它外部事件发生的定时器数据。
    产生多个定时信号。

    4.增/减计数模式

    需要生成对称波形的情况经常可以使用增/减计数模式。该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器值的2倍。

    二、TimerA寄存器说明

    寄存器

    寄存器说明

    类型

    地址

    初始状态

    TACTL

    Timer_A控制寄存器

    读写

    160H

    POR复位

    TAR

    Timer_A计数器

    读写

    170H

    POR复位

    CCTL0

    捕获/比较控制寄存器0

    读写

    162H

    POR复位

    CCR0 捕获/比较寄存器0

    读写

    172H

    POR复位

    CCTL1

    捕获/比较控制寄存器1

    读写

    164H

    POR复位

    CCR1 捕获/比较寄存器1

    读写

    174H

    POR复位

    CCTL2

    捕获/比较控制寄存器2

    读写

    166H

    POR复位

    CCR2 捕获/比较寄存器2

    读写

    176H

    POR复位

    TAIV 中断向量寄存器

    读写

    12EH

    POR复位

    1.TACTL 控制寄存器,各位定义:

    15-10

    9 8 7

    6

    5

    4

    3

    2

    1

    0

    未用

    SSEL1 SSEL0 ID1 ID0 MC1 MC0 未用 CLR TAIE TAIFG

    SSEL1、SSEL0选择进入定时器分频器的时钟源,

    SSEL1

    SSEL0

    输入时钟源

    说明

    0 0 TACLK 用特定的外部引脚信号
    0 1 ACLK 辅助时钟
    1 0 MCLK 系统时钟
    1 1 INCLK 外部输入时钟

    ID1、ID0输入分频系数

    ID1

    ID0

    分频系数

    0 0 不分频
    0 1 1/2分频
    1 0 1/4分频
    1 1 1/8分频

    MC1、MC0计数模式控制位

    MC1

    MC0

    模式

    0 0 停止模式
    0 1 增计数模式
    1 0 减计数模式
    1 1 增/减计数模式

    CLR——定时器清除。当该位为1时,定时器复位。

    TAIE——定时器中断允许位。0:禁止定时器溢出中断;1:允许定时器溢出中断。

    TAIFG——定时器溢出标志位。

    增计数模式:当定时器由CCR0计数到0时,TAIFG置位;
    连续计数模式:当定时器由0FFFFH计数到0时,TAIFG置位;
    增/减计数模式:当定时器由CCR0减计数到0时,TAIFG置位。

    2.TAR 16位计数器。

    3.CCTLx 捕捉/比较控制寄存器,各位定义:

    15 14

    13 12 11 10 9

    8

    7 6 5

    4

    3

    2

    1

    0

    CAPTMOD1~0

    CCIS1~0 SCS SCCIx  

    CAP

    OUTMODx

    CCIEx

    CCIx

    OUT

    COV

    CCIFGx

    CAPTMOD1~0——选择捕获模式

    00:禁止捕获模式
    01:上升沿捕获
    10:下降沿捕获
    11:上升沿与下降沿都捕获

    CCIS1~0——捕获事件输入源

    00:选择CCIxA
    01:选择CCIxB
    10:选择GND
    11:选择Vcc

    SCS——选择捕获信号与定时器时钟同步、异步关系

    0:异步捕获
    1:同步捕获(实际中经常使用同步模式,捕获总是有效的)

    SCCIx——比较相等信号EQUx将选中的捕获/比较输入信号CCIx(CCIxA,CCIxB,Vcc和GND)进行锁存,然后可由SCCIx读出。

    CAP——选择捕获模式还是比较模式。

    0:比较模式
    1:捕获模式

    OUTMODx——选择输出模式

    000:输出
    001:置位
    010:PWM翻转/复位
    011:PWM置位/复位
    100:翻转
    101:复位
    110:PWM翻转/置位
    111:PWM复位/置位

    CCIEx——捕获/比较模块中断允许位

    0:禁止中断
    1:允许中断

    CCIx——捕获/比较模块的输入信号

    捕获模式:由CCIS0和CCIS1选择的输入信号可通过该位读出
    比较模式:CCIx复位

    OUT——输出信号(如果OUTMODx选择输出模式0,则该位对应于输入状态)

    0:输出低电平
    1:输出高电平

    COV——捕获溢出标志

    0:没有捕获溢出
    1:发生捕获溢出
    当CAP=0时,选择比较模式。捕获信号发生复位。没有使COV置位的捕获事件
    当CAP=1时,选择捕获模式。如果捕获寄存器的值被读出前再次发生捕获事件,则COV置位。程序检测COV来判断原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出标志复位,须用软件复位。

    CCIFGx——捕获比较中断标志

    捕获模式:寄存器CCRx捕获了定时器TAR值时置位
    比较模式:定时器TAR值等于寄存器CCRx值时置位

    4.CCRx 捕捉/比较寄存器:可读可写

    在捕获模式,当满足捕获条件,硬件自动将计数器TAR数据写入该寄存器。
    如果测量某窄脉冲(高电平)的脉冲长度,可定义上升沿和下降沿都捕获。在上升沿时,捕获一个定时器数据,这个数据在捕获寄存器中读出;再等待下降沿到来,在下降沿时又捕获一个定时器数据;那么两次捕获的定时器数据差就是窄脉冲的高电平宽度。
    其中CCR0经常用作周期寄存器,其它CCRx相同。

    5.TAIV 中断向量寄存器:

    Timer_A模块使用两个中断向量。一个单独分配给捕获/比较寄存器CCR0;另一个作为共用中断向量用于定时器和其它的捕获/比较寄存器。

    捕获/比较寄存器CCR0中断向量具有最高的优先级。因为CCR0能用于定义增计数和增/减计数模式的周期。因此,它需要最快速的服务。CCIFG0在被中断服务时能自动复位。

    CCR1~CCRx和定时器共用另一个中断向量,属于多源中断,对应的中断标志CCIFG1~CCIFGx和TAIFG1在读中断向量字TAIV后,自动复位。如果不访问TAIV寄存器,则不能自动复位,须用软件清除。

    15~5

    4~ 1 0

    0~0

    中断向量 0

    中断优先级

    中断源

    缩写

    TAIV的内容

    最高 捕获/比较器1 CCIFG1 2
    捕获/比较器2 CCIFG2 4
    ......    
    捕获/比较器x CCIFGx  
    最低 定时器溢出 TAIFG1 10
    没有中断将挂起  
  • 相关阅读:
    第八次作业
    第七次作业2
    jsp第十一次作业
    jsp第十次作业
    jsp第九次作业
    jsp第八次作业
    jsp第七次作业
    jsp第六次作业
    软件测试第二次作业
    jsp第五次作业
  • 原文地址:https://www.cnblogs.com/sky1991/p/2645512.html
Copyright © 2020-2023  润新知