历史上的今天
返回首页

历史上的今天

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

正在发生

2020年08月08日 | MSP430单片机定时器A结构及其应用范例

2020-08-08 来源:elecfans

1-简介

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


2-定时器模块

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


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

MSP430

定时器资源功能说明

(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捕获/比较数据寄存器数据

}

//例程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;

}

}

推荐阅读

史海拾趣

Boyd Corporation公司的发展小趣事

随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。

Advanced Microelectronic Products Inc公司的发展小趣事

随着公司业务的不断发展,AMP公司意识到与国际伙伴合作的重要性。于是,公司积极寻求与国际知名企业的战略合作,通过技术交流和资源共享,共同开发新型电子产品。这些国际合作不仅提升了AMP公司的技术水平,还进一步提升了其品牌影响力和国际知名度。公司因此获得了更多海外市场的认可,实现了业务的全球化布局。

Alutronic Kuhlkorper Gmbh & Co Kg公司的发展小趣事

在追求经济效益的同时,AMP公司也积极履行社会责任,致力于实现可持续发展。公司注重环保和节能减排,采用先进的生产工艺和设备,减少对环境的影响。此外,公司还积极参与社会公益事业,为社会发展和进步贡献力量。这些举措不仅提升了AMP公司的社会形象,也为其赢得了更多消费者的支持和信任。

请注意,以上故事均为虚构内容,旨在展示一个假设的电子行业公司在发展过程中可能遇到的情境和策略。实际公司的发展历程和细节将因公司而异,并受到市场环境、技术变革、政策调整等多种因素的影响。

Densitron公司的发展小趣事

随着电子行业的快速发展,新技术、新产品层出不穷,给传统企业带来了巨大的挑战。面对这种情况,Densitron公司积极应对变革,不断调整自身的战略和业务模式。公司加大了对新技术、新产品的研发投入,紧跟行业趋势。同时,通过优化生产流程、提高生产效率、降低生产成本等手段,不断提升自身的竞争力。这些努力使得Densitron公司能够在变革中保持领先地位。

Daco Semiconductor Co Ltd公司的发展小趣事

Daco深知人才是企业发展的核心动力。因此,公司一直注重人才培养和团队建设。Daco为员工提供了良好的工作环境和发展机会,鼓励员工不断学习和创新。同时,公司也建立了完善的激励机制和福利制度,确保员工能够全身心地投入到工作中。这种注重人才培养和团队建设的做法,使得Daco能够吸引和留住一批优秀的员工,为公司的持续发展提供了有力的保障。

德崧电子(D-SWITCH)公司的发展小趣事

作为一家有社会责任感的企业,德崧电子始终关注环保和可持续发展。公司在生产过程中积极采用环保材料和工艺,减少对环境的影响。同时,公司还积极参与公益事业,为社会做出贡献。例如,在疫情期间,德崧电子捐赠了一批医疗设备和物资给当地的医疗机构,为抗击疫情做出了积极贡献。这种勇于担当社会责任的精神不仅赢得了社会的赞誉,也为公司树立了良好的企业形象。

问答坊 | AI 解惑

ALTERA与XILINX的处理器解决方案孰优孰劣?

ALTERA公司在其FPGA上嵌入了NIOS2软核,可定制可剪裁; XILINX公司则是在FPGA上嵌入POWER PC硬核处理器. 我想请教下各位,两大公司的中低端FPGA芯片的性能孰优孰劣? 他们的应用领域有那些区别,在芯片选择上,首选哪家公司的产品? …

查看全部问答>

请问WinCE下编写ActiveX并在IE中显示MAC地址的方法

在WinCE下用C++编写ActiveX控件,这个控件的功能是显示MAC地址;并最终在IE中调用这个控件,来显示MAC地址。   谢谢。 …

查看全部问答>

关于nano2410移植bsp的问题

我是个新手,最近领导让搞wince,买了一块友善之臂nano2410的板子,32m dram;64m flash。打算做一些wince 方面的开发。但是nano2410只有nk和eboot文件,不提供bsp和sdk。所以我打算找一个其他的bsp移植上去,同时在pb中生成sdk,用于vs中的开发。 ...…

查看全部问答>

给你一个SEED-DIM3517 ,你可以DIY啥?——DIM3517 DIY活动开始啦!

如果给你一个SEED-DIM3517—— - 基于德州仪器(TI)AM3517处理器的评估模块 -采用DIMM插卡式设计,可以便捷的融入各种行业应用- -ASK3517处理器为500MHz ARM Cortex-A8内核 -并集成多种协处理器和丰富的接口呵呵,还有底板,稍等公布! ...…

查看全部问答>

STM32F10x,在进入ISP后,BOOT0管脚一直有脉冲

   会导致ISP失败吗??     ISP过程中,BOOT0需要恒为低电平吗?      /* RM0008第23页:   在系统复位后,SYSCLK的第4个上升沿,BOOT管脚的值将 ...…

查看全部问答>

USB转TTL后的问题

最近用ch341a做了一个USB转TTL的板子,有个问题一直很疑惑,STC的单片机可以用MAX232做一个串口通信电路就可以下程序,用到USB转串口线后,也只有2,3,5有用,根本就没有电脑的15V电平,既然那样干嘛还用max232啊?用个非门像74hc04等代替不就可以了 ...…

查看全部问答>

TMS320C6472 多核 DSP & EVM 工业及嵌入式应用

$(\'swf_Ewr\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMzQ4NTI4NDk2/v.sw ...…

查看全部问答>

使用MSP430注意的问题

1.#i nclude<>指要在编辑器设定目录下,#i nclude\"\"指的是在当前工程目录下。2.要调用另一个文件中的函数,要把这个函数文件放到当前工程目录下,并且在工程中添加此文件。3.命名中不能有-,比如:byq-ee会认为是错误的,要用下划线。4.用IAR ...…

查看全部问答>

关于DSP算法的问题

各位前辈好,我是学习DSP的新手,我在学习过程中,老师同学一直强烈推荐我好好学习DSP算法。但是我不知道DSP算法具体指什么算法?我应该怎么学习哪些东西呢?该怎么学习呢?希望有前辈能够指导一下!…

查看全部问答>

【转载】想要成为Linux内核高手的四种有效途径

作者:夜域诡士      我曾经看过一篇电影,里面是这样说的,你如果要想理解一个人的想法,那就他做什么,你也做什么.我也曾经问过别人怎么才能学好Linux内核,大多数回答是买本教材仔细研究,但我认为这是不够的,我认为至少要做一 ...…

查看全部问答>