历史上的今天
返回首页

历史上的今天

今天是:2025年07月11日(星期五)

正在发生

2018年07月11日 | msp430学习笔记之定时器A

2018-07-11 来源:eefocus

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

 

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变化一次,说明使用定时器比较模式成功


推荐阅读

史海拾趣

Fastron公司的发展小趣事

Fastron公司深知产品质量对于企业的重要性。因此,公司建立了严格的质量控制体系,从原材料采购到产品生产、检测等各个环节都实行严格的质量控制和管理。Fastron还引进了先进的检测设备和技术手段,确保每一款产品都符合高标准的质量要求。这种对品质的执着追求使得Fastron的产品在市场上具有极高的竞争力。

Digi International公司的发展小趣事

Digi International在无人机技术方面也取得了重要进展。公司与Draganfly公司合作,为新型Draganflyer X4-P无人机配备了无线XBee®模块,实现了更远距离的控制和实时数据传输。这一技术突破不仅提高了无人机的性能和应用范围,也为Digi International在无人机领域的发展开辟了新的道路。通过与Draganfly的合作,Digi International进一步巩固了其在物联网和M2M领域的技术领先地位。

ETEQ Microsystems Inc公司的发展小趣事

随着市场的不断发展,ETEQ Microsystems Inc意识到只有不断创新才能保持竞争力。公司投入大量资源进行研发,终于在XXXX年成功研发出业界首款集成了人工智能算法的微型传感器。这一产品不仅提高了数据的处理效率,还大大降低了能耗,为物联网领域带来了革命性的变化。

ASPEED Technology公司的发展小趣事

2016年,ASPEED Technology宣布并购博通旗下的Emulex Pilot™远程服务器管理芯片业务。这一举措标志着ASPEED在服务器管理芯片领域取得了重要突破,为公司带来了先进的远程服务器管理技术和市场份额。通过并购,ASPEED不仅获得了强大的技术支持,还进一步巩固了其在全球服务器管理芯片市场的地位。

Dionics Inc公司的发展小趣事

近年来,随着全球贸易环境的变化和市场竞争的加剧,Dionics Inc也面临着前所未有的挑战。然而,在公司管理层的坚强领导下,全体员工团结一心、共克时艰。公司不仅成功应对了各种挑战和困难,还通过一系列创新举措实现了业务的稳步增长。展望未来,Dionics Inc将继续坚持创新驱动的发展战略,努力成为电子行业的领军企业之一。

Ho Chien Electronics Group Inc公司的发展小趣事

在20世纪90年代初,Dionics Inc由几位对电子技术充满热情的工程师创立。当时,电子市场正处于快速发展期,但也面临着激烈的竞争。Dionics Inc凭借其在电源管理领域的创新技术,成功开发出一款高效节能的电源管理芯片,赢得了市场的认可。然而,随着市场的进一步开放,来自国内外的竞争对手纷纷涌入,Dionics Inc面临着巨大的挑战。

问答坊 | AI 解惑

[求助]WinCE TCP协议栈问题?

由于工作原因,将原XP下的NDIS中间层驱动移植到WinCE下面。目前已经完成,并能够成功运行起来,但遇到如下问题: 跑一会TCP数据后,TCP传输变得非常慢,但是ICMP报文传输正常,所以不太可能是网卡驱动的原因,并且其它程序一切正常,仅仅是所有的T ...…

查看全部问答>

USBOTG引脚初始化时需要设置成哪种模式

想用STM32F105VC的USB OTG,准备用主模式,USBDM和USBDP初始化时GPIO_InitStructure.GPIO_Mode的模式需要选择为哪种模式 typedef enum { GPIO_Mode_AIN = 0x0,   GPIO_Mode_IN_FLOATING = 0x04,   GPIO_Mode_IPD = 0 ...…

查看全部问答>

铁电的msp430手工焊接如果温度过高是数据丢失还是损坏?

看430FR5739系列的视频介绍手工焊接如果温度过高是可能导致数据丢失或者有效时间变短还是损坏不能用了? 视频介绍要求机器焊接以后在烧写,手工焊要求低于波峰焊温度260度,但是好像没听到明晰地说如果手工焊温度超过了是会损坏了不能再烧写使用了 ...…

查看全部问答>

请教,如何用电感电容做功放输出衰减(替代电阻衰减)

请教一问题,我现在有一功放输出100W,但是输出S22有点点不达标,主要是带宽过太大了,我在非饱和输出的情况下用电阻尝试了下3dB衰减,发现效果很好,但是输出用电阻做衰减在饱和状态下一下就会烧掉,所以想请教各位有没有什么好的办法,用电感和电 ...…

查看全部问答>

破解大学寝室智能限电

这学期学校把电表换了,多了什么智能限电,洗完澡开吹风就跳闸,烧壶水也跳闸,很是郁闷,又不甘心花钱去买小功率的吹风和电热壶。不知大伙寝室是不是也有这样的限电,呵呵。开始把壶插在走廊的消防应急灯插座上煮板栗,被逮个正着,更是郁闷。于是 ...…

查看全部问答>

买了TI 的无线手表开发工具不会用,来看看中文版数据手册!

无线手表开发工具 eZ430-Chronos™ 开发工具用户指南 (Rev. D) eZ430-Chronos 是运动手表中基于 CC430 的高度集成的无线开发系统。它可用作手表系统的参考平台、个人局域网的个人显示器或远程数据收集的无线传感器节点。 无线手表开发 ...…

查看全部问答>

引用回复光标默认是在什么位置?

引用回复别人的帖子,记得以前好像光标会自动在引用部分的下方,不知道何故,我现在发现默认光标在引用框里,这样,如果点击引用回复以后直接敲字的话敲出的字会落在引用框里末尾,这时如果想把光标调整到引用框下面还找不到方法。我的浏览器是谷歌 ...…

查看全部问答>

Sensortag蓝牙通信

请问各位本人已经用Sensortag与蓝牙4.0模块连接成功,现在能够获取RSSI..但不知道怎么获取sensortag的传感器数据。。。。请问要用蓝牙模块获取sensortag的数据,现在不知道从何下手…

查看全部问答>

Makefile文件的问题

本帖最后由 chenbingjy 于 2016-9-19 13:28 编辑 有一个工程的文件列表如下。工程中共有5个文件,在add目录中有add_int.c和add_float.c,两个文件分别计算整形和浮点型的相加;在sub目录下有文件 sub_int.c和sub_float.c,分别计算整形和浮点型的 ...…

查看全部问答>