MSP430单片机定时器A结构及其应用范例

发布者:phi31最新更新时间:2013-01-16 来源: 21IC 关键字:MSP430  定时器  向量查询 手机看文章 扫描二维码
随时随地手机看文章

1-简介

简介MSP430单片机定时器A结构及其应用范例。

2-定时器模块

在MSP430系列单片机中带有功能强大的定时器资源,这定时器在单片机应用系统中起到重要的作用。利用MSP430(以下称为430)单片机的定时器可以用来实现计时,延时,信号频率测量,信号触发检测,脉冲脉宽信号测量,PWM信号发生。另外通过软件编写可以用作串口的波特率发生器。后面我们将用定时器A作为一个波特率发生器,来编写一个串口例程给初学者参考。以加强初学者对定时器A的理解和应用。

在430的大系列产品中,不同的子系列产品定时器资源有所不同;在F11X,F11X1中是不带定时器B资源的。430的定时器主要分为3部分模块:看门狗定时器,定时器A,定时器B。定时器A主要资源特点有16位定时计数器,其计数模式有4种。多种计数时钟信号供选择。3个可配置输入的捕获/比较功能寄存器和8种输出模式的3个可配置输出单片。以上各块定时器资源可作多种组合使用,以实现强大的功能。

定时器资源功能说明

(1)看门狗定时器(WDT):主要用于程序在生错误时用作单片机系统复位重起的。另外,也可作为一个基本定时器使用。

(2)定时器A:作基本定时器使用,结合捕获/比较功能模块可实现时序控制,可编程波形信号发生输出。可作串口波特率发生器使用。

(3)定时器B:作基本定时器使用,与定时器A基本相同,但是功能方面有某些功能会比A增强些。详情请看关于定时器B应用范例。

3-定时器A模块结构

4-定时器A--基础应用例程(1)

//例程描述:利用定时器定时功能,实现P1.0方波输出。

#include

{

WDTCTL = WDTPW + WDTHOLD; //停止看门狗WDT,不使用内部看门狗定时器。

P1DIR |= 0x01; //设置P1.0口方向为输出。

CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1,CCR0捕获/比较功能中断为允许。

CCR0 = 50000; //捕获/比较控制寄存器CCR0初值为5000。

TACTL = TASSEL_2 + MC_2; //设置定时器A控制寄存器TACTL,使时钟源选择为SMCLK辅助时钟。

_BIS_SR(LPM0_bits + GIE); //进入低功耗模式LPM0和开中断

}

//定时器A 中断服务程序区

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A (void)

{

P1OUT ^= 0x01; //P1.0取反输出

CCR0 += 50000; //重新载入CCR0捕获/比较数据寄存器数据

}[page]

//例程1结束--------------------------------------------------------------------------

基础应用例程(2)

//例程描述:利用定时器定时功能,实现P1.0方波输出。

// 需要注意的是定时器中断程序,采用向量查询方式。

#include

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 停止看门狗WDT

P1DIR |= 0x01; // 设置P1.0口方向为输出。

TACTL = TASSEL_2 + MC_2 + TAIE; // 时钟源选择为SMCLK,选择计数模式,定时器中断开

_BIS_SR(LPM0_bits + GIE); //进入低功耗模式LPM0和开中断

}

// Timer_A3 中断向量(TAIV)处理

#pragma vector=TIMERA1_VECTOR

__interrupt void Timer_A(void)

{

switch( TAIV )

{

case 2: break; //CCR1不使用

case 4: break; //CCR2不使用

case 10: P1OUT ^= 0x01; //溢出

break;

}

}

关键字:MSP430  定时器  向量查询 引用地址:MSP430单片机定时器A结构及其应用范例

上一篇:MSP430的低功耗事件驱动工作模式
下一篇:MSP430f149端口功能及设置

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

基于MSP430单片机的智能小车设计
  智能小车涉及到高级计算机控制、电子机械、自动化等诸多学科,随着科技的不断进步,智能电子产品发展步骤不断加快,各种应用层次的机器人等大量出现,目前应用在智能小车或机器人的微控制器主要是8/16单片机或ARM和 数字信号处理 器DSP等。本设计采用TI公司生产的功耗低运行速度快且价格便宜的MSP430F2274为核心,避障检测采用测距精准的超声波传感器,该传感器采集小车周围的环境信息并传递给MSP430进行程序判断处理,从而达到控制小车自动避障的目的。   1 系统的总体结构框图   该系统主要由MSP430控制器,超声波避障模块,电机驱动,测速,语音模块,温度模块,小车的机械运动部分采用四轮差速转向式结构,前2个轮是驱动轮,分别
[单片机]
基于<font color='red'>MSP430</font>单片机的智能小车设计
51单片机定时器与中断的程序设计
P2.0~P2.2 分别接上了独立按键 K0、K1、K2。 P1 接上了 8 个 LED,输出低电平时发光。 要求: 按下 K1 键,P1.7 输出周期为 1s 的方波; 按下 K2 键,P1 输出循环流水灯,每 2 个灯亮 0.5s; 按下 K0 键,停止方波和流水灯的输出。 ;----------------------------------------- ; ORG 0000H JMP START ORG 000BH ; JMP T0_INT T0_INT: MOV TH0, #(65536 - 50000) / 256 MOV TL0, #(65536 - 50000) MOD 256 DJNZ
[单片机]
51单片机<font color='red'>定时器</font>与中断的程序设计
MSP430单片机经典下载电路
适用于大部分 F1系列 F2系列 F4系列等
[单片机]
MSP430 时钟设置(一)
1、在MSP430单片机中一共有三个时钟源: 一个LFXT1CLK,为低速/高速晶振源,通常接32.768khz,也可以接(400khz~8Mhz); 一个为XT2CLK,外接标准高速晶振,通常是接8Mhz,也可以接(400khz~8Mhz); 还有一个叫DCOCLK,为内部晶振,有RC震荡回路构成。 2、在MSP430单片机内部一共有三个时钟系统: 一个为ACLK,通常由LFXT1CLK作为时钟源,可以通过软件控制改时钟的分频系数树; 一个为MCLK(Main CLK)一听就知道是主时钟单元,为系统内核提供时钟,它可以通过软件从三个时钟源选择; 还有一个为SMCLK,称作辅助主时钟,也是可以由软件选择时钟源。
[单片机]
MSP430笔记4——定时器
定时器Timer_A(TA) 基本寄存器 TA控制寄存器 TACTL TASSELx:时钟源选择(TACLK00 ACLK01 SMCLK10 ~TACLK11) IDx:第一次分频控制(ID0一分频 ID1二分频 ID2四分频 ID3八分频) MC:工作模式控制(停止00 增01 连续10 增减11) TACLR:定时器清零,复位TA寄存器、时钟分频和计数方向;会自动复位并置0 TAIE:定时器中断使能(0中断禁止 1中断允许) TAIFG:中断标志位(0没有中断 1有中断挂起) 计数值存放寄存器TAR 扩展寄存器TAEX0 控制时钟源的二次分频,000-111表示1-8分频 捕获/比较寄存器 TACCR0-TACC
[单片机]
<font color='red'>MSP430</font>笔记4——<font color='red'>定时器</font>
看门狗定时器特殊功能寄存器及实例软件设计
1.看门狗定时器特殊功能寄存器   (1)看门狗定时器控制寄存器WTCON   看门狗定时器控制寄存器WTCON如表1所示。WTCON可以使能看门狗定时器从4个不同的时钟源中选择时钟信号,使能或者禁止中断,使能或者禁止看门狗定时器复位信号输入。   表1 看门狗定时器控制寄存器WTCON   看门狗定时器用于在供电后使用S3C44B0X从出错中恢复正常工作。如果不想重启处理器,那么看门狗定时器禁用;如果想使用看门狗定时器提供的正常的定时功能,需使用中断和看门狗定时器功能。   (2)看门狗定时器数据寄存器WTDAT   看门狗定时器数据寄存器WTDAT如表2所示。WTDAT用于设置时限值,在初始化看门狗定时器后,
[单片机]
看门狗<font color='red'>定时器</font>特殊功能寄存器及实例软件设计
s3c6410在linux下的WATCHDOG TIMER(看门狗定时器)驱动(3)
前面两篇一篇分析了看门狗定时器的驱动架构,另一篇分析了平台设备对应的probe函数,虽然对应的remove函数没分析,其实和别的平台设备驱动一样,做和probe函数相反的工作。这一篇要说点啥呢? S3c2410_wdt.c (linux2.6.28driverswatchdog)在这个文件中还有很多函数,我们都没有分析过,这一篇就找些重要的函数分析下。 1、那就先从s3c2410wdt_start函数开始,此函数开启看门狗,源码如下: static void s3c2410wdt_start(void) { unsigned long wtcon; spin_lock(&wdt_lock); __s3c2410
[单片机]
s3c6410在linux下的WATCHDOG TIMER(看门狗<font color='red'>定时器</font>)驱动(3)
关于MSP430单片机数字与字符转换的问题
今天在调试过程中碰到的最头疼的问题就是在数字与字符串转换的问题,在网上找到相关的函数sprintf(),但一直出问题,原始代码: unsigned char *s; sprintf(s, Value=%f.3 ,tmp); // tmp为一浮点数 DispStr(0,2,s); 在sprintf函数处出现一个警告,但能通过。下载至单片机,LCD2004在指定位置没有显示。 改进后的代码 char s ; sprintf(&s , Value=%f.3 ,tmp); // tmp为一浮点数 DispStr(0,2,(unsigned char *)s); 下载至单片机一切正常,只不过在小数点后面
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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