Msp430定时器的介绍及其基本应用

发布者:Huanle666最新更新时间:2016-02-26 来源: eefocus关键字:Msp430  定时器  基本应用 手机看文章 扫描二维码
随时随地手机看文章
Msp430定时器的介绍及其基本应用
 

Msp430单片机一共有5种类型的定时器。

看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bit Timer/Counter)、定时器A(Timer_A)和定时器B(Timer_B)。但是这些模块不是所有msp430型号都具有的功能。

1、看门狗定时器(WDT)

学过电子的人可能都知道,看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。

msp430中它是一个16位的定时器,有看门狗和定时器两种模式。

2、基本定时器(Basic Timer1)

基本定时器是msp430x3xx和msp430F4xx系列器件中的模块,通常向其他外围提供低频控制信号。它可以只两个8位定时器,也可以是一个16位定时器。

3、8位定时器/计数器(8-bit Timer/Counter)

如其名字所示,它是8位的定时器,主要应用在支持串行通信或数据交换,脉冲计数或累加以及定时器使用。

4、16位定时器A和B

 

定时器A在所有msp430系列单片机中都有,而定时器B在msp430f13x/14x和msp430f43x/44x等器件中出现,基本的结构和定时器A是相同的,由于本人最先熟悉并应用的是定时器A所以在这里就主要谈一下自己对定时器A的了解和应用。

定时器A是16位定时器,有4种工作模式,时钟源可选,一般都会有3个可配置输入端的比较/捕获寄存器,并且有8种输出模式。通过8种输出模式很容易实现PWM波。

定时器A的硬件电路大致可分为2类功能模块:

一:计数器TAR

计数器TAR是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断TAIFG。

二:比较/捕获寄存器CCRX

如何实现定时功能呢?这就要靠三个比较/捕获寄存器了(以后用CCRx表示)。

当计数器TAR的计数值等于CCRx时(这就是捕获/比较中的比较的意思:比较TAR是否等于CCRx),CCRx单元会产生一个中断。依据中断即可得到相应的定时时间了。

这样我们可以通过定时器A得到三个定时时间了。

一:程序示例

我先给出我的一个应用程序,然后通过程序来书名定时器A的基本用法。程序如下:


void init_TimerA ( void )
{
 CCTL0 = CCIE; //1:开启比较器0中断
 CCR0 = 32768; // 2:定时时间的选取

其为1S秒定时:因为选择的是ACLK,UpMode,所以TAR每增加1次的时间为1/32768s,一共增加32768次,所以为1s
CCTL1 = CCIE; // 开启比较器1中断
CCR1 = 100; // 3.66mS显示延迟
 TACTL = TASSEL_1 + MC_1; // 3:选择时钟源和计数模式

时钟源为ACLK并且为增计数模式 

LPM3; //进入低功耗3  
}


#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A0(void)
{

//用户代码 TACCR0
}


#pragma vector = TIMERA1_VECTOR
__interrupt void Timer_A1 ( void )
{
 switch( TAIV )
 {
   case  2: //用户代码 break; // TACCR1

   case  4://用户代码 break; // TACCR2

   case 10://用户代码 break; //TAIFG
  

//根据需要是否要退出低功耗模式
LPM3_EXIT;                     // 退出低功耗
}

二:程序分析

1):看程序中的定时器初始化模块。

1:CCTL0 = CCIE;

CCTLx是相应比较/捕获寄存器的控制寄存器,它可对比较/捕获寄存器进行设置。

这语句的意思是:开启了CCR0的中断使能,当计数器TAR计数到CCR0时产生中断。

2:CCR0 = 32768;

CCRx就是相应比较器的值。

其为1S秒定时:因为选择的是ACLK,UpMode,所以TAR每增加1次的时间为1/32768s,一共增加32768次,所以为1s定时。

3:TACTL = TASSEL_1 + MC_1;

TACTL是计数器的控制寄存器。

TASSEL_x是时钟源的选择。

0——TACLK,使用外部引脚信号作为输入

1——ACLK,辅助时钟

2——MCLK,系统主时钟

3——INCLK,外部输入时钟

MC_x是选择TAR的工作模式选择位。对TACTL进行模式设置的同时也开启了定时器,要停止只需把MC_0赋值给TACTL就可以。

0——停止模式,用于定时器的暂停

1——增计数模式,计数器计数到CCR0,再清零计数

2——连续计数模式,计数器增计数到0xffff,再清零计数

3——增/减计数模式,增计数到CCR0,再减计数到0

所以这个计数器工作在UP模式,时钟源为ACLK。

2):看程序中的定时器中断模块。

在UP或者UP/DOWN模式时,通过改变CCR0的值可以改变计数器TAR的最大计数值,也就是当计数器计数到CCR0的值时自动会将计数器清零。因为CCR0比较特殊,所以CCRO0的中断向量与CCR1,CCR2,TA所共有的中断向量不同。

CCR0的中断很容易只需在函数中加上自己的中断相应程序就行。但是CCR1和CCR2是公用一个中断函数的,所这就需要识别到底是哪个中断,这可以通过一个寄存器TAIV来识别,

2——比较/捕获寄存器1中断

4——比较/捕获寄存器2中断

10——定时器溢出

0——没有中断

三:注意事项

需要注意的是在增计数模式时CCR1和CCR2的值应该小于CCR0,否则CCR1和CCR2不会产生中断。

并且每次CCR1和CCR2中断后要把它们重新赋值这样才能保证CCR1和CCR2的中断间隔时间不变。

类似语句如下:

CCR1 += 100;                  
    if ( CCR1 >= 32768 )
      CCR1 -= 32768;


关键字:Msp430  定时器  基本应用 引用地址:Msp430定时器的介绍及其基本应用

上一篇:MSP430单片机低功耗控制与系统工作模式详解
下一篇:MSP430串口接收发送中断程序

推荐阅读最新更新时间:2024-03-16 14:45

如何充分利用MSP430单片机的FLASH
优点: 能够充分利用MSP430单片机的自带FLASH储存空间,就可避免外扩EEROM芯片了,一是节约成本,二是少了外扩EEROM的读写代码,三是同样可以储存用户数据,比如A/D转换后的数据。当然,如果是常量就不必了,直接将常量申明为“CONST”变量即可,这个就不多说了,懂的。 具体方法: 先把完整的程序编好(不包括FLASH的),然后编译(我用的是IAR,CCE没试过),进行在线仿真(软仿真硬仿真均可),在菜单栏选择 View/Memory ,然后就可以看到FLASH 各个地址的数据了,记下FLASH 还没有被程序占用的空间的地址,然后将FLASH的程序加到你的主程序里,再编译,检验你记下的地址是否被程序占用,如果
[单片机]
MSP430F5529 (四)电源&&&(五)工作模式
我觉得电源管理与监控是一个很复杂很难掌控的部分,不仅涉及到到源模式的选择,还牵扯到复杂的中断、以及中断如何处理等等。虽然学好这一部分对实现降低功耗的目的很有帮助,但对于目前的我们来说貌似 功耗 一词还稍微远了点。此外,这部分控制对防止和处理供电意外( (过高过低等)的发生很有帮助,不过貌似这个开发板如果不独立拿来做项 项目而只是接在电脑USB供电的话,一般也不会有什么问题。所以,我也 也只打算简单学一下。(到后期有机会会再仔细学)。 I/O口和所有模拟单元包括晶振在内都由DVCC供电。内存(flash和RAM)和数字单元由核心电压VCORE供电。 DVCC:宽的电源电压范围1.8V-3.6V; VCORE:DVCC经低压降
[单片机]
<font color='red'>MSP430</font>F5529 (四)电源&&&(五)工作模式
STM32F4_SYSTICK定时器
关于SYSTICK定时器的说明,在STM32F4的参考手册中并没有提到,因为这个定时器是属于Cortex内核的内容。在《Cortex M3权威指南》中,可以在第八章,也即“NVIC与中断控制”那一章节的最后才可看到其详细说明,摘取如下。 //-----------------------------------------------------------------------------------------------------------// SysTick定时器被捆绑在NVIC中,用
[单片机]
STM32F4_SYSTICK<font color='red'>定时器</font>
MSP430与液晶显示器的串行接口方案
摘要:针对利用微控制器(MCU)控制液晶显示驱动器(LCD)的应用开发实例,提出一种采用串行方式来设计微控制器和液晶显示驱动器之间接口的方案。该方案是在现有点阵式液晶显示屏上附加一个MCU,通过程序设计利用MCU的I/O端口去模拟I2C串行总线,从而实现利用MCU去控制LCD的目的;同时介绍一种在图符液晶显示系统中显示动态曲线的技术和实现方法。 关键词:液晶显示驱动器 I2C串行总线 MSP430 1 概述 点阵式液晶与外部的硬件接口简单,能以点阵或图形方式显示出各种信息,因此在电子设计中得到广泛应用。但是,对它的接口设计必须遵循一定的硬件和时序规范,不同的液晶显示驱动器,可能需要采用不同的接口方式和控制指令才能够实现所需
[应用]
PIC18F4520定时器初值设置
PIC18F4520运行一条指令所需的时间,等于4个机器周期=1us(4M晶振) 定时器初值设置:以5ms为例 TMR0H=(65536-5000)/256=0XEC; TMR0L=(65536-5000)%256=0X77;
[单片机]
基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0
一、VIIC_M1.0软件包的组成 根据归一化设计的要求,主方式下虚拟I2CC总线由下列10个子程序组成: 1、时序模拟子程序4个 I2C_sta,I2C _stop,I2C _mack ,I2C _mnack 2、操作模拟子程序3个 I2C_ackn,I2C _wr_byte,I2C _rd_byte 3、数据读写子程序3个 I2C_wr_nbyte,I2C _rd_nbyte,I2C_wr_addr 二、应用对象 1、MSP430单片机 MSP430单片机为低功耗的16位单片机,有MSP430X11、MSP430X112、MSP430X1101、MSP430X13X、MSP430X14X、MSP430X31X/32X/33
[单片机]
基于<font color='red'>MSP430</font>单片机的虚拟I2C总线软件包VIIC_M1.0
MSP430模拟串口的源程序-汇编语言
#i nclude MSP430x11x1.h ; ; MSP430F1121 ; ----------------- ; /|\| XIN|- ; | | | 32k ; --|RST XOUT|- ; | | ; | | 2400 8N1 ; | TX/P1.1|-------- ; | TX/P2.2| -------- ; RXD equ 004h ; RXD on P2.2 TXD equ 002h
[单片机]
定时器中断是什么意思,定时器中断的工作原理
定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。STM32中共有11个定时器。 一、定时器中断是什么意思 定时器中断是由单片机中的定时器溢出而申请的中断。 51单片机中有两个定时器T0和T1: (1)TF0:定时器T0溢出中断请求。当定时器TO产生溢出时,TO中断请求标志TF0置1,请求中断处理。 (2)TF1:定时器T1溢出中断请求。当定时器Tl产生溢出时,T1中断请求标志TF1置1,请求中断处理。 Stm32共有11个定时器: 1、两个高级定时器:TIM1、TIM8-------------------------APB2 2、四个通用定时器:TIM2~TIM5-------------
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved