760|0

6853

帖子

19

资源

纯净的硅(中级)

说下MSP430F149内部资源-定时器 [复制链接]

定时器是MSP430应用系统中经常要用到的重要部分。
    (一)、可以实现的功能有:
       1、定时引起中断
       2、延迟
       3、提供串口比特率
       4、信号产生
       5、信号检测   (捕获模式下)
       6、频率测量
       7、脉宽测量
    (二)、一般来说,MSP430所需要的定时信号可以用软件和硬件两种方法来实现;
       1、软件定时: 设计一个延迟程序,节省硬件,所需时间容易调整,但是执行程序期间一直占用CPU,降低了CPU的利用率;
       2、硬件定时:利用专门的定时器件作为主要实现器件,在简单软件控制下产生准确的时间延迟;通过指令对其设置时间常数,并由指令启动定时器。

     (三)、MSP430F149的定时资源:

       1、WDT----看门狗定时器
    在正常操作期间,一次WDT溢出将产生一次系统复位。如果通过程序使WDT的定时时间略大约程序执行一遍所需时间,并且程序中含有对WDT清零的指令,使EDT重新计数。那么程序正常运行时,在WDT时间还没到达之前将其清零,不会产生系统复位;如果程序跑飞,则在WDT时间到达的时候不会有指令将其清零,就会产生WDT溢出,从而引起系统复位,程序重新开始执行,这样就避免了因程序执行错误产生不可预计的错误。
    WDT的寄存器资源:
      a、WDTCNT----计数单元,是16位增计数器;
      b、WDTCTL----控制寄存器,由两部分组成,高8位用作口令,低8位对WDT进程控制
         要写入操作WDT的控制命令,必须首先正确写入高字节看门狗口令,口令位5AH,如果口令写错将会导致系统复位,
         通过控制寄存器低8位可以实现的功能
                 IS0,IS1-----选择看门狗定时器的定时输出
                 SSEL-----   选择WDT的时钟源
                 CNTCL----   该位置1时清除WDTCNT
                 TMSEL----   工作模式选择
                          0---看门狗模式,  1---定时器模式
                 NMI-----    选择RST/NMI引脚功能,在PUC后被复位
                          0---复位端,   1----边沿触发的非屏蔽中断输入
                 NMIES---    选择中断的边沿触发方式
                          0---上升沿触发,     1---下降沿触发
                 HOLD-----    停止看门狗定时器工作,降低功耗
                          0---WDT功能激活,  1---WDT停止工作
           WDT用到SFR地址的两位:中断标志位WDTIFG---位于IFG1.0,初始态为复位;
                                 中断允许位WDTIE---位于IE1.0,初始态为复位。
           看门狗定时器:在看门狗模式下引发的中断属于非屏蔽中断
                         在定时器模式下引发的中断属于可屏蔽中断
           通过WDTCTL 可以选择WDT的定时时间、工作模式、中断方式以及低功耗模式。

      看门狗关闭语句:WDTCTL = WDTPW + WDTHOLD;
                               //WDTPW ----口令,固定值 0x5A00
                               //WDTHOLD ---- 0x0080,HOLD位置位。WDT功能激活

      定时周期为32ms:WDTCTL = WDT_MDLY_32;      
                         //其中:WDT_MDLY_32 = WDTPW+WDTTMSEL+WDTCNTCL   
                               //WDTTMSEL = 0x0004 ,TMSEL置1,选择定时器模式
                               //WDTCNTCL  = 0x0008, CNTCL置1,清除WDTCNT

       2、Timer_A----定时器A
           由一个16位定时器 和 多路比较器/捕获通道组成,每个比较/捕获通道都以16位定时器的定时功能为核心进行单独的控制
           Timer_A的特性:
              a、不仅能捕获外部事件发生的时间,而且还能锁定其发生时的高低电平
              b、4种计数功能选择
              c、8种输出方式选择
              d、可实现串口通信
              e、不能重载时间常数

           Timer_A由以下三部分组成
              a、计数器部分:输入时钟源有4种选择,又可以选择1、2、4、8分频;
              b、捕获/比较器:捕获、比较器两者工作是完全相互独立的,用于捕获事件产生的时间或者
                              时间间隔;
              c、输出单元:具有可选的8种输出,用于产生用户需要的信号。

            Timer_A的寄存器资源:

              a、TAR------16位计数器
              b、TACTL----控制寄存器
                 SSEL1,SSEL0-----用于选择定时器的时钟源
                 ID1,ID0-----    用于选择分频
                 MC1,MC0-----    计数模式控制位
                 CLR---------    定时器清除位
                 TAIE--------    定时器中断允许位
                 TAIFG-------    定时器溢出标志位
                            增计数模式:当定时器又CCR0计数到0,置位
                            连续计数模式:当定时器由0FFFFH计数到0,置位
                            增减计数模式,当定时器由1减为0时,置位
               c、CCRx-----捕获/比较寄存器
                      当满足捕获条件时,硬件自动将计数器TAR数据写入该寄存器中。如果要测量某个
                  脉冲长度,可定义上升沿和下降沿都捕获,在上升沿时,捕获一个定时器数据,在
                  下降沿时又捕获一个定时器数据,那么这两个定时数据的差就是脉冲宽度。
               d、CCTLx---捕获/比较控制寄存器
                      CM1,CM0--------选择捕获模式
                      CCIS1,CCIS0----在捕获模式中用来定义提供捕获事件的输入源
                      SCS------------选择捕获信号是同步还是异步关系
                      COV------------捕获溢出标志
                      CCIEx----------捕获/比较模块中断允许位
                      CCIFGx---------捕获寄存器中断标志
                      CAP-----------选择捕获模式还是比较模式
                               0---比较模式,   1----捕获模式
                      OUTMODx-------选择输出模式
                      OUT-----------输出信号
                                0---输出低电平,  1---输出高电平
                      CCIx----------捕获比较模块的输入信号
                      SCCIx---------比较相等信号EQUx将选中的捕获/比较输入信号CCIx进行锁存,然
                                    后可由SCCIx读出
                           捕获模式下,由CCIS0,CCIS1选择的输入信号可通过该位读出。
                e、TAIV-------------中断向量寄存器
                    Timer_A中断可由计数器溢出引起,也可以来自捕获/比较器,每个捕获/比较器可以
                独立编程,由外部信号产生中断,外部信号可以是上升沿,也可以是下降沿,也可两者都
                有;
                     Timer_A模块使用两个中断向量,一个单独分配给捕获/比较器0,另一个作为共用中
                断向量用于定时器和其它捕获/比较器;
                     捕获/比较寄存器CCR0中断向量具有最高的优先级,因为其能用于定义增计数和
                增/减计数模式的周期,需要最快的服务。
                     CCR1--CCRx与定时器共用一个中断向量,属于多源中断,对应的中断标志CCIFG1--
                CCIFGx和TAIFG1在读中断向量字TAIV后,自动复位;如果不访问TAIV寄存器,则不会自动
                复位,需用户软件清除。如果相应的中断允许复位(不允许中断),则将不会产生中断请
                求,但中断标志仍存在,需用软件清除。
                     如果有Timer_A中断标志位,则TAIV为相应的数据,该数据和PC的值相加,可使系
                统自动进入相应的中断服务程序。
         设置定时器A,选择MCLK,清除TAR,允许定时器溢出中断
             TACTL = TASSEL1 + TACLR + TAIE;
                     //TASSEL1 = 0x0200,,SSEL置位,选择MCLK
                     //TACLR = 0x0004, CLR置位,TAR清零
                     //TAIE = 0x0002,IE置位,允许定时器中断

       3、Timer_B----定时器B


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/5 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表