msp430学习笔记之定时器A

原创 2015年07月07日 22:56:56

1 相关知识

1 定时器a图解

  
 1  定时器A图解
2  定时器A的四种计数模式
 

1. 停止模式。

2. 增计数模式。(产生两个中断标志)

当计数到跟TACCR0一样的时候,就返回0,重新计数。当计数到TACCR0的同时产生一个中断标志CCIFG,而当计数器溢出返回零的同时又同时产生一个中断标志TAIFG。如图:

2 增计数模式的时序图

3.连续计数模式(产生一个中断标志)

计数器将直接计数到计数器所能计数的最大值0FFFFH之后重新返回零,再次计数。返回零的同时产生一个TAIFG中断标志。如图

3 连续技术模式的时序图

如果相应中断位允许,每当一个定时间隔到都会产生中断请求,在连续计数模式下,须将下一事件发生的时间在当前中断程序中加到CCRx中,如图4,下次发生中断的时间等于在CCR0a发生中断时刻,CCR0 = CCR0a + Δt


4 连续计数模式下中断与CCRx关系


4 增减计数模式(产生两个中断标志)

当计数器计数到跟TACCR0一样的之后,然后从TACCR0开始又减少,直到为零,然后又开始增。当计数跟TACCR0一样的时候产生一个中断标志CCIFG,当减到为零的时候又产生一个中断标志TAIFG。如图:



图 5 增减计数模式时序图

相关寄存器这里就不一一介绍了,可以翻阅数据手册


2 代码实现

//本平台 msp430f149
#include <msp430f149.h>

volatile unsigned char count = 0,flag = 0;

void P2_config(){
	P2DIR = 0x80;
	P2OUT = 0xff;

}

void select_xt2(void){
	
	unsigned char i;
	
	/*------选择系统主时钟为8MHz-------*/
    BCSCTL1 &= ~XT2OFF;                 	
	do{    
    IFG1 &= ~OFIFG;                 		//清除晶振失败标志
        for (i = 0xFF; i > 0; i--);     	//等待8MHz晶体起振
    }while ((IFG1 & OFIFG));             	
	
    BCSCTL2 |= SELM_2 + SELS  ;           	//MCLK和SMCLK选择高频晶振	

}


void main(){
	WDTCTL = WDTPW + WDTHOLD;				       // 关狗
	select_xt2();								   //8MHz晶振	
	P2_config();
	
	CCTL0 = CCIE;                                  // CCR0 中断使能
 	CCR0 = 10000;
  	TACTL = TASSEL_2 + MC_2 + ID_3;                // SMCLK = 1MHz, 连续计数模式
	 _EINT();									   // 开启全局中断
	
	while(1){
		if(count == 50){
			count = 0;
			P2OUT  ^= BIT7 ;
	        
		}
		
	}

}

// Timer A0 中断服务函数
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  count ++;
  CCR0 += 10000;                            // 下次中断时间装入CCR0中
}


3 实验结果

       led灯间隔0.5s变化一次,说明使用定时器比较模式成功
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

单片机MSP430 - Timer_A 定时器中断程序

一、利用定时器定时功能,实现定时器单个溢出中断,实现 P3.0 方波输出 #include "cc430x613x.h" void main() { WDTCTL = WDTPW + WDT...

MSP430定时器 TIMER0_A1_VECTOR

msp430g2553有两个定时器,一个是Timer0,一个是Timer1。TIMER0_A1_VECTOR ,TIMER0_A0_VECTOR    是Timer0的中断向量, 在430中,CCR...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

MSP430F1612 TimerA 定时功能配置

MSP430F1612的定时功能使用(有源码)

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

Msp430单片机一共有5种类型的定时器。 看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bit Timer/Counter)、定时器A(Timer_A)和...
  • tsroad
  • tsroad
  • 2015年11月09日 16:18
  • 1518

MSP430学习笔记(2)定时器A

3.        定时器A: 所有MSP430系列的FLASH型单片机都含有定时器A(Timer_A),由一个16位定时器和多路比较/捕获通道组成。每个比较/捕获通道都是以16位定时器的定时功能为核...

单片机MSP430 - 定时器Timer_A

一、定时器Timer_A 介绍 Timer_A是一个具有多路捕获/比较寄存器的16位定时/计数器,主要有TAxCTL,TAxR,TAxCCTLn,TAxIV,TAxEX0 几个寄存器。其中最主要的是T...

MSP430(f149)学习笔记——红外遥控发射

最近由于项目需求,研究了一下MSP430,总体感觉MSP430还是非常不错的单片机,不亏是TI的产品。项目中用MSP430实现了红外遥控功能,下面我们先来分析一下红外的发送原理。 红外发送原理 红外发...
  • girlkoo
  • girlkoo
  • 2013年05月27日 10:46
  • 8972

使用MSP430实现温控(一)

这部分博客主要是对以前做的使用MSP430进行温控的经验进行整理,以防后来资料遗失的情况。对于MSP430而言,实现温控模块以下几个模块互相配合。将分为下面几个部分进行讲解: 时钟源部分 ADC部分 ...

MSP430(F5529)学习笔记——UCS配置详解

MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。 UCS简介 MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK、...
  • girlkoo
  • girlkoo
  • 2013年06月09日 16:43
  • 26761
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:msp430学习笔记之定时器A
举报原因:
原因补充:

(最多只允许输入30个字)