历史上的今天
返回首页

历史上的今天

今天是:2025年01月18日(星期六)

正在发生

2020年01月18日 | 基于msp430Timer_A定时器的LED

2020-01-18 来源:eefocus

相信学过430的朋友对Timer_A应该不陌生吧,反正我是难忘了,感觉学的比stm32的定时器都吃力啊,看起来简单,但是,,,就是学起来吃力,怪我咯!


闲话少说,今天我就来总结一下我学习Timer_A的痛苦经历。


首先,我们要知道Timer_A的基本结构吧: 

这里写图片描述

总结起来就两点:


16位的定时/计数器

3个捕获/比较寄存器

然后,我们来看看它的基本特征 

 这里写图片描述

总结如下:

 

支持多多个捕获/比较同时工作

支持PWM波的输出

支持输出时间间隔

拥有多种中断,如溢出中断,捕获/比较中断

在然后,我就我这个项目要用到的知识跟大家讲一下,其余的知识呢,,,,啥,你给我糖,我也懒的讲(傲娇)


那么,首先是定时器A,要工作,是不是要时钟呢?没有时钟,它是工作不了滴! 

所以,我们在用它之前,肯定是要选一个时钟的。那是不是只有一个时钟呢? 

Of Course Not! 它可是有4种时钟可以选择呢? 

这里写图片描述
这里写图片描述

呐呐,看到没? 手册里说了,我么可以通过TASSELx(2bits,属于TACTL(时钟控制的缩写)寄存器)来选择它的时钟,具体有四种:ACLK(辅助时钟),SMCLK(子系统时钟),TACLK(外接引脚时钟),INCLK(外接时钟)。除此之外,我们还可以通过IDx(同TASSELx)来对时钟进行分频。至于TACLR(1bit ,属于TACTL),是用来清零的,可以复位分频设置等。


时钟源选好了,那么就该选比较/捕获寄存器了。比较/捕获寄存器有三个,这里我只用了第一个TACCR0,所以,下面我就讲它一个,其余两个,你们要用到的话,就去看数据手册吧,也很简单的。

这里写图片描述

上图列出了Timer_A的9中寄存器,我们只先介绍TACCR0,TACCTL0. 

首先,TACCTL0,这是比较/捕获寄存器0的控制寄存器。里面有些位用来控制TACCR0。我们这里要只用到它的比较中断,就是当TAR(计数器寄存器)和TACCR0中的设置值相等时,TACCR0发生比较中断,置位标志位CCIFG。(CCIE,CCIFG都是TACCTL0中的位) 

这里写图片描述
这里写图片描述

介绍完中断,还不算完,我们还有设置计数器的计数方式呢!TAR有三种计数方式:而它的设置是在TACTL中: 

这里写图片描述

它是通过设置MCx来对计数方式进行设置,翻译为:


停止计数

增计数

连续计数

增减计数 

我们这里会用到增计数,也就是在TACCR0中设置一个值,然后定时器就会启动,从0开始,每一个时钟周期加1,直到加到与TACCR0中值相等时,产生中断。然后TAR继续从0开始计数,重复刚才的动作。 

这里写图片描述

再然后就是具体电路了,这里可以参见我的我的另一篇博客: 


最后就是代码了:

#include

#include "Config.h"                     //开发板硬件宏


uchar i=0;                              //跑马灯循环变量

long long  count=40000;                 //TACCR0的值

uchar flag=0;                           //中断标志位


//***********************************************************************

//               MSP430IO口初始化

//***********************************************************************

void Port_Init()

{

  LED8DIR  = 0xFF;                          //设置IO口方向为输出

  LED8     = 0xFF;                          //P6口初始设置为FF

}

//***********************************************************************

//             TIMERA初始化,设置为UP模式计数

//***********************************************************************

void TIMERA_Init()                       

{

  TACTL |= TASSEL_1 + TACLR+MC_3;     //SMCLK做时钟源,8分频,增计数模式,计数到TACCR0

  CCR0=count;

  TACCTL0=CCIE;

}

//***********************************************************************

//             TIMERA中断服务程序,需要判断中断类型

//***********************************************************************

#pragma vector = TIMERA0_VECTOR                //TACCR0的中断向量

__interrupt void Timer_A(void)

{

   i++;

   flag=1;

}

void main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  //Clock_Init();                                 //系统时钟设置

  Port_Init();                                   //端口初始化

  TIMERA_Init();                                //设置TIMERA

  _EINT();

  while(1)

  {

    if(flag==1)

    {

      switch(i)

       {

          case 1:

            LED8 &= ~(1<<0);flag=0; //点亮D1灯

            break;

          case 2:

            LED8 &= ~(1<<1);flag=0;  //点亮D2灯

            break;

          case 3:

            LED8 &= ~(1<<2);flag=0;//点亮D3灯

            break;

          case 4:

            LED8 &= ~(1<<3);flag=0;  //点亮D4灯

            break; 

          case 5:

            LED8 &= ~(1<<4);flag=0;  //点亮D5灯

            break;

          case 6:

            LED8 &= ~(1<<5);flag=0;  //点亮D6灯

            break;

          case 7:

            LED8 &= ~(1<<6);flag=0;  //点亮D7灯

            break;

          case 8:

            LED8 &= ~(1<<7);flag=0; i=0;//点亮D8灯

            break;              

       }

    }

  }

}


搞定!

推荐阅读

史海拾趣

亿晶源(ekinglux)公司的发展小趣事

亿晶源(EKINGLUX)公司成立于2005年,总部位于深圳。创始人凭借对LED半导体行业的深刻理解和敏锐的市场洞察力,决定在这一领域深耕。公司成立之初,面临资金、技术和市场的多重挑战,但团队凭借不懈的努力和坚定的信念,逐步在市场中站稳脚跟。

Digital Core Design公司的发展小趣事

然而,随着《古墓丽影》系列的不断发展,Core Design也面临了一些挑战。其中最为严重的是版权问题。由于Core Design在后续的一些作品中可能违背了“古墓”的本源,享有Lara Croft和《古墓丽影》版权的游戏发行商Eidos作出了剥夺Core Design《古墓丽影》系列开发权的决定。这一决定对Core Design来说无疑是一个巨大的打击,但也促使其开始寻找新的发展机遇。

ADLINK公司的发展小趣事

1988年,Core Design由Jeremy Heath-Smith创立,起初仅有8名员工和1万6千英镑的注册资金。这家新兴的游戏开发公司很快凭借其首款游戏《Rick Dangerous》在英国游戏市场崭露头角。这款游戏凭借其独特的游戏机制和引人入胜的故事情节,迅速登上英国游戏销量榜的榜首,并赢得了欧洲年度游戏奖,为Core Design的未来发展奠定了坚实的基础。

ADATA公司的发展小趣事

1988年,Core Design由Jeremy Heath-Smith创立,起初仅有8名员工和1万6千英镑的注册资金。这家新兴的游戏开发公司很快凭借其首款游戏《Rick Dangerous》在英国游戏市场崭露头角。这款游戏凭借其独特的游戏机制和引人入胜的故事情节,迅速登上英国游戏销量榜的榜首,并赢得了欧洲年度游戏奖,为Core Design的未来发展奠定了坚实的基础。

GHz Technology ( Microsemi )公司的发展小趣事

1988年,Core Design由Jeremy Heath-Smith创立,起初仅有8名员工和1万6千英镑的注册资金。这家新兴的游戏开发公司很快凭借其首款游戏《Rick Dangerous》在英国游戏市场崭露头角。这款游戏凭借其独特的游戏机制和引人入胜的故事情节,迅速登上英国游戏销量榜的榜首,并赢得了欧洲年度游戏奖,为Core Design的未来发展奠定了坚实的基础。

Connect-Tech Products Corp公司的发展小趣事

随着国内市场的不断饱和,Connect-Tech Products Corp公司开始寻求海外市场的发展机会。公司通过参加国际电子展、建立海外销售网络等方式,积极开拓国际市场。同时,公司还与国际知名企业展开合作,共同研发新产品,进一步提升了公司的技术水平和市场影响力。这些举措不仅为公司带来了更广阔的市场空间,也为其未来的发展奠定了坚实基础。

问答坊 | AI 解惑

Microchip扩充率22位Δ-Σ模数转换器阵容

 Microchip扩充率22位Δ-Σ模数转换器阵容新款模数转换器可抑制阻止50或60 Hz线路频率噪音噪声,实现高精度测量 Microchip Technology Inc.(美国微芯科技公司)日前宣布其低功耗率、高分辨率Δ-Σ模数转换器系列又添新成员——新款MCP3550加 ...…

查看全部问答>

带驱动的步进电机的管脚定义

本人有个带驱动器的步进电机,型号为BL55S-M01是三星打印机上的,上面带一个10针的插座分别为:1.24V 2. 24V 3.GND 4.GND 5.BK 6.5V(NC) 7.ST/SP 8.RD 9.CLK 10.CW  /CCW。哪位高手能否介绍一下那些管脚的作用?…

查看全部问答>

朋友 喜欢玩中星9号卫星资料华亚微

朋友 喜欢玩中星9号卫星资料华亚微HTV903,,PCB文件是ASC可以用PROTEL99/POWERPCB导入.…

查看全部问答>

请高手看看这个屏

请高手看看这个屏,请告诉我型号,在下感激不尽…

查看全部问答>

CE5.0下 2G SD卡不能识别,1G以下正常,为什么?

平台:S3C2440、WINCE5.0 问题现象描述: 1、1G以下的SD卡一切正常。 2、2G的卡插入无法识别到卡的盘符 特别现象描述:    正常插入卡无法识别2G卡,但插入的时候使劲按住卡不放,能正常识别到卡,并能正常读写,为什么?1G以下卡没 ...…

查看全部问答>

关于USB设备的读取

{                 m_strLog += _T(\"抱歉,未找到可用的USB设备\");…

查看全部问答>

招聘Windows Mobile/Win CE应用工程师

由于公司扩展,急需招聘Windows   Mobile/Win   CE应用工程师 有意者发送简历到simonjin@gotoup.cn或直接发送到hr@gotoup.cn 公司简介: 上海向上信息科技有限公司是一家专业从事智能手机研究、开发的高新技术企业。主要 ...…

查看全部问答>

请教:单片机遇计算机通讯问题

我在计算机上用串口调试助手给80S51发送31个字节的16进制数据,比如:dd 01 ...09。dd是一个标志位后面的30个数据才是单片机所要处理的数据,单片机然后将这30个字节显示在数码管上。但是得到的现象是:所有数码管都显示最后一个字节的数09,单片机 ...…

查看全部问答>

BitBlt的画图问题

各位:   我用一个临时DC来选图片,然后把到放到内存DC指定位置,然后把内存DC的图片拷到显示DC里去。 刚开始的时候显示DC里是一个纯黑的图,BitBlt过去后,彩色图片变成白色了。 后来我把显示DC清空,直接把内存DC的拷到显示DC里去, ...…

查看全部问答>

STM32F10xxSample/Price

已经为大家准备了一批STM32系列芯片,覆盖了所有的芯片型号,从36PIN到100PIN,直接查询零售价,如果有需要可以电话联系我们。www.mxchip.com网站新版,欢迎指导!…

查看全部问答>