zoukankan      html  css  js  c++  java
  • MSP430:定时器学习TimerA

    4. 定时器TA

    一、时钟源
    1、时钟源:ACLK/SMCLK 外部TACLK/INCLK
    2、分频:1/2/4/8 当 (注:TACLR 置位时,分频器复位)

    二、计数模式
    通过设置MCx可以设置定时器的计数模式

    1、停止模式:停止计数
    2、单调增模式:定时器循环地从0增加到TACCR0值
    周期 :TACCR0
    CCIFG :Timer计到TACCR0值时触发
    TAIFG :Timer计到0时触发
    3、连续模式 :定时器循环从0连续增加到0xFFFF
    周期 :0x10000
    TAIFG :Timer计到0时触发
    4、增减模式 :定时器增计数到TACCR0 再从 TACCR0 减计数到 0
    周期 :TACCR0值的2倍
    CCIFG :Timer计到TACCR0值时触发
    TAIFG :Timer计到0时触发

    三、定时器A TACCRx 比较模式 (用于输出和产生定时中断)
    1、设置:CAP=0选择比较
    2、输出信号:比较模式用于选择 PWM 输出信号或在特定的时间间隔中断。当 TAR 计数
    到 TACCRx 的值时:
    a、中断标志 CCIFG=1;
    b、内部信号 EQUx=1;
    c、EQUx 根据输出模式来影响输出信号
    d、输入信号 CCI 锁存到 SCCI
    每个捕获比较模块包含一个输出单元。输出单元用于产生如 PWM 这样的信号。每个输出单元可以根据
    EQU0 和 EQUx 产生 8 种模式的信号。

    3、中断
    TimerA 有 2 个中断向量:
    a、TACCR0 CCIFG 的 TACCR0 中断向量
    b、所有其他 CCIFG 和 TAIFG 的 TAIV 中断向量
    在捕获模式下,当一个定时器的值捕获到相应的 TACCRx 寄存器时, CCIFG 标志置位。
    在比较模式下,如果 TAR 计数到相应的 TACCRx 值时,CCIFG 标志置位。软件可以清除或置
    位任何一个 CCIFG 标志。当响应的 CCIE 和 GIE 置位时, CCIFG 标志就会产生一个中断。
    c、TACCR0 CCIFG 标志拥有定时器 A 的最高中断优先级,并有一个专用的中断向量,
    当进入 TACCR0 中断后,TACCR0 CCIFG 标志自动复位。
    d、TACCR1 CCIFG, TACCR2 CCIFG, 和 TAIFG 标志共用一个中断向量。中断向量寄存器 TAIV
    用于确定它们中的哪个要求响应中断。最高优先级的中断在 TAIV 寄存器中产生一个数字(见
    寄存器说明),这个数字是规定的数字,可以在程序中识别并自动进入相应的子程序。禁止定时
    器 A 中断不会影响 TAIV 的值。
    对 TAIV 的读写会自动复位最高优先级的挂起中断标志。如果另一个中断标志置位,在结
    束原先的中断响应后会,该中断响应立即发生。例如,当中断服务子程序访问 TAIV 时,如果
    TACCR1 和 TACCR2 CCIFG 标志位置位,TACCR1 CCIFG 自动复位。在中断服务子程序的 RETI
    命令执行后,TACCR2 CCIFG 标志会产生另一个中断。

    四、TimerA的捕获模式
    1、设置:CAP=1选择捕获, CCISx位设置捕获的信号源,CMx位选择捕获的沿,上升,下降,或上升下降都
    捕获。
    2、如果一个第二次捕获在第一次捕获的值被读取之前发生,捕获比较寄存器就会产生一个溢出逻辑,COV
    位在此时置位,如图 8-11,COV 位必须软件清除。

    五、寄存器
    1、TACTL:TimerA控制寄存器

    TASSELx:TA时钟源选择
    0:TACLK;1:ACLK;2:SMCLK;3:INCLK
    IDx: 输入分频,分时钟源分频再输入TimerA
    0/1/2/3:1/2/4/8 分频
    MCx: 模式控制
    0:停止定时器;1:增模式,定时器计数到TACCR0;
    2:连续模式,定时器计数到0xFFFF;3:增减模式,0->TACCR0->0
    TACLR: 定时器清零位。该位置位会复位 TAR,时钟分频和计数方向。TACLR位会自动复位并读出值为0
    TAIE: TA 中断允许。该位允许 TAIFG 中断请求
    0:中断禁止;1:中断允许
    TAIFG: TA中断标记
    0:无中断挂起;1:中断挂起

    2、TAR:TimerA计数寄存器


    3、TACCTLx:捕获比较控制寄存器

    CMx:捕获模式
    0:不捕获;1:上升沿捕获;2:下降沿捕获 ;3:上升和下降沿都捕获
    CCISx:捕获比较选择,该位选择 TACCRx 的输入信号
    0:CCIxA;1:CCIxB;2:GND;3:VCC
    SCS:同步捕获源,该位用于将捕获通信和时钟同步
    0:异步捕获;1:同步捕获
    SCCI:同步的捕获/比较输入,所选择的 CCI 输入信号由 EQUx 信号锁存,并可通过该位读取
    CAP:捕获模式
    0:比较模式;1:捕获模式
    OUTMODx:输出模式位。由于在模式 2,3,6 和 7 下 EQUx= EQU0,因此这些模式对 TACCR0 无效
    0:OUT 位的值;1:置位;2:翻转/复位;3:置位/复位
    4:翻转;5:复位;6:翻转/置位;7:复位/置位
    CCIE:捕获比较中断允许位,该位允许相应的 CCIFG 标志中断请求
    0:中断禁止;1:中断允许
    CCI:捕获比较输入。所选择的输入信号可以通过该位读取
    OUT:对于输出模式 0,该位直接控制输出状态
    0:输出低电平;1:输出高电平
    COV:捕获溢出位。该位表示一个捕获溢出发生。COV 必须由软件复位。
    0:没有捕获溢出发生;1:有捕获溢出发生
    CCIFG:捕获比较中断标志位
    0:没有中断挂起;1:有中断挂起

    4、TAIV:TimerA中断向量寄存器

    寄存器的值:
    0:无中断挂起;
    2:捕获比较1 TACCR1 CCIFG;
    4:捕获比较2 TACCR2 CCIFG;
    0xA:定时器溢出 TAIFG

  • 相关阅读:
    什么是test-time argument(测试数据增强)
    在k3d上快速安装Istio,助你在本地灵活使用K8S!
    IoT设备实践丨如果你也在树莓派上部署了k3s,你也许需要这篇文章
    k3s原理分析丨如何搞定k3s node注册失败问题
    仅需60秒,使用k3s创建一个多节点K8S集群!
    手把手实操教程!使用k3s运行轻量级VM
    k3s首季在线培训来袭!本周四晚,线上见!
    k3s新版本发布!支持Helm3!还有其他重要更新Highlight!
    如何优雅地使用containerd?这里有一份必读的技巧攻略
    图解拥塞控制,这应该是把拥塞控制讲的最通俗易懂的文章了
  • 原文地址:https://www.cnblogs.com/wwjdwy/p/3156220.html
Copyright © 2011-2022 走看看