历史上的今天
返回首页

历史上的今天

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

正在发生

2018年07月11日 | MSP430G2553 定时器中断实例

2018-07-11 来源:eefocus

代码


#include "MSP430G2553.h"


void led_init();

void timer0_init();


void main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;


  //--配置时钟-----

  BCSCTL1=CALBC1_1MHZ;

  DCOCTL=CALDCO_1MHZ;


  //--LED初始化----

  led_init();     


  //--定时器0初始化----

  timer0_init();


  //---开中断------

  _EINT();      //开中断


  LPM3;



}


/*

 *    定时器0中断函数

 */

#pragma vector=TIMER0_A0_VECTOR

__interrupt void Timer0_A0(void)    //TACCR0中断

  P1OUT^=(1<<6);    //LED反转

}


#pragma vector=TIMER0_A1_VECTOR

__interrupt void Timer0_A1(void)    //TACCR1中断,TACCR2中断和TA0溢出中断共用一个中断向量

  switch(TAIV)

  {

  case 2:                           //TACCR1中断

    P1OUT^=(1<<6);    //LED反转

    break;

  case 4:                           //TACCR2中断

    P1OUT^=(1<<6);    //LED反转

    break;

  case 10:                          //TAIFG 溢出中断

    P1OUT^=(1<<6);    //LED反转

    break;

  default:

    break;

  }


}


// LED 初始化

void led_init()

{

  P1DIR|=(1<<6);  

}


// 定时器初始化

void timer0_init()   

{

  /*

   *设置TIMER_A的时钟

   *TASSEL_0: TACLK,使用外部引脚信号作为输入

   *TASSEL_1: ACLK,辅助时钟

   *TASSEL_2: SMCLK,子系统主时钟

   *TASSEL_3: INCLK,外部输入时钟 

  */

  TACTL |= TASSEL_1;    


  /*

   *时钟源分频

   *ID_0: 不分频

   *ID_1: 2分频

   *ID_2: 4分频

   *ID_3: 8分频

   */

  TACTL |= ID_0;    


  /*

   *模式选择

   *MC_0: 停止模式,用于定时器暂停

   *MC_1: 增计数模式,计数器计数到CCR0,再清零计数器

   *MC_2: 连续计数模式,计数器增计数到0XFFFF(65535),再清零计数器

   *MC_3: 增减计数模式,增计数到CCR0,再减计数到0

   */

  TACTL |= MC_1;  //增计数模式


  //----计数器清零-----

  TACTL |= TACLR; 


  //----设置TACCRx的值-----

  //TACCR0=32768-1;     //时钟是32.768K,那么值设为32678-1 

  TACCR0=30000;

  TACCR1=10000;         //TACCR1和TACCR2要小于TACCR0,否则不会产生中断 

  TACCR2=20000;


  //----中断允许----

  TACCTL0 |= CCIE;      //TACCR0中断

  TACCTL1 |= CCIE;      //TACCR1中断

  TACCTL2 |= CCIE;      //TACCR2中断

  TACTL |= TAIE;        //TA0溢出中断


}


注意事项


  需要注意的是在增计数模式时CCR1和CCR2的值应该小于CCR0,否则CCR1和CCR2不会产生中断。 并且每次CCR1和CCR2中断后要把它们重新赋值这样才能保证CCR1和CCR2的中断间隔时间不变。 

  类似语句如下: 

  CCR1 += 100; 

  if ( CCR1 >= 32768 ) 

    CCR1 -= 32768;


推荐阅读

史海拾趣

AMS公司的发展小趣事

AMS(Austria Microsystems)公司是一家总部位于奥地利的半导体制造商,专注于开发和生产高性能的模拟半导体解决方案。以下是 AMS 公司发展的五个相关故事:

  1. 创立与早期阶段:AMS 公司成立于1981年,最初是一家从事晶圆制造的小型企业。公司创始人团队以其对半导体技术的深刻理解和创新能力,在短时间内取得了一定的成就。早期产品主要包括模拟集成电路(IC)和传感器,为医疗、汽车、工业等领域提供解决方案。

  2. 技术创新与产品扩展:随着市场需求的不断变化和技术的进步,AMS 公司不断进行技术创新,并扩展了产品线。公司致力于开发具有高性能、低功耗和小尺寸的模拟半导体产品,以满足智能手机、消费电子、工业自动化等领域的需求。公司的产品涵盖了光学传感器、环境传感器、声学传感器等多个领域。

  3. 全球化发展与市场拓展:AMS 公司通过不断拓展全球市场,加强与客户和合作伙伴的合作关系,实现了快速的业务增长。公司在欧洲、亚洲和美洲设立了多个销售办事处和生产基地,建立了完善的全球供应链和销售网络。公司的产品销售网络覆盖了全球范围,得到了国内外客户的广泛认可。

  4. 收购与合并:随着公司规模的扩大和市场竞争的加剧,AMS 公司通过收购和合并等方式不断强化自身实力。公司先后收购了一些技术领先的公司,扩大了产品线和市场份额。此举进一步提升了公司在模拟半导体领域的竞争优势,加速了公司的业务增长。

  5. 持续创新与未来展望:AMS 公司将继续致力于技术创新和产品研发,不断提升产品性能和品质水平。公司将关注新兴技术和市场趋势,积极布局未来的发展方向,包括人工智能、物联网、汽车电子等领域。同时,公司还将加强与客户和合作伙伴的合作,共同推动行业的发展和进步。

HB公司的发展小趣事

服务:Hartmann Codier GmbH深知客户是企业发展的基石。因此,公司始终将客户服务放在首位,致力于为客户提供优质的产品和服务。公司建立了完善的客户服务体系,包括售前咨询、售中支持和售后服务等环节。

成果:通过不断优化客户服务流程和提高服务质量,Hartmann Codier GmbH赢得了广大客户的信赖和支持。公司与客户之间建立了长期稳定的合作关系,共同推动了电子行业的繁荣发展。同时,公司也根据客户的反馈和需求,不断改进产品和服务,以满足市场的不断变化和升级。

依必安派特(ebmpapst)公司的发展小趣事

1996年,依必安派特在上海外高桥保税区设立了其在中国的首个据点——依必安派特风机(上海)有限公司。最初,它仅作为销售为主的贸易公司,为中国市场提供德国制造的风机和电机产品。然而,随着中国市场的快速增长和需求的不断变化,依必安派特意识到仅仅作为贸易公司已无法满足市场需求。于是,在2000年,依必安派特电气(上海)有限公司正式成立,开始在上海本地生产风机和电机,标志着依必安派特从贸易到制造的转变。

Allied Electronic & Semiconductor Technology Inc公司的发展小趣事

AE&ST公司自创立之初,就深知技术创新是电子行业的核心竞争力。公司投入大量资源进行研发,不断探索新的半导体材料和生产工艺。在一次偶然的实验中,AE&ST的研发团队发现了一种新型半导体材料,这种材料在能效和稳定性方面表现出色。公司迅速将这一发现转化为产品,并推向市场。新产品一经推出,便因其卓越的性能获得了市场的广泛认可,AE&ST公司因此获得了巨大的商业成功。

宁波晨翔电子(CONNFLY)公司的发展小趣事

宁波晨翔电子有限公司(CONNFLY)成立于1998年(前身宁波正青电子有限公司),初创时期主要致力于连接器及线材产品的研发与生产。在创始团队的共同努力下,公司逐渐在电子连接器市场找到了自己的定位,通过不断的技术创新和品质提升,逐渐获得了市场的认可。

大毅科技公司的发展小趣事

随着业务的不断增长,大毅科技意识到需要扩大生产规模以满足市场需求。于是,公司开始在大陆地区寻找合适的生产基地,最终在东莞、清溪、苏州等地设立了生产基地。这一举措不仅降低了生产成本,还提高了生产效率,使大毅科技能够更好地服务全球客户。同时,这也体现了大毅科技对全球市场的战略眼光和布局。

问答坊 | AI 解惑

如何将驱动程序打包

我现有一个驱动的.sys文件和.inf 文件 以及一个用VC编写的应用程序(.exe)的文件,我想把它打包成一个安装文件,请高手指点一个! 由于本人是新会员,没有什么积分!不过请不吝赐教!!!…

查看全部问答>

专业提供驱动开发外包服务和支持

欢迎访问:http://www.drivercoding.com.cn MSN或者QQ,Mail都可以,基本在线…

查看全部问答>

S3c2410上电时,关于SDRAM的默认初始值与手册上的不一样是怎么回事?

S3c2410上电时,关于SDRAM的默认初始值与手册上的不一样是怎么回事? 我没有将BOOTLOADER下载进去,也没有从外部初始化SDRAM,因此正常的话应该是手册上的初始值,但是我的全是0,不知是怎么回事? 然后 我又手工通过Multi-ICE对SDRAM进行 ...…

查看全部问答>

计算机组成原理课程设计、电子钟、电子琴、智能交通灯电路图!用8255!~和汇编程序!

各位高手:今年计算机组成原理课程设计,电子钟,电子琴,智能交通灯! 这些电路图!我们是用实验箱做实验的!主要电路图不会画  和借口不知道从哪接! 希望大家能看看有没有会的,和做过这样的课程设计!还有相关的汇编语言程序! 希 ...…

查看全部问答>

STM32实现SPI简单通信配置

/******************************************************* 说明:        次程序成功实现SPI简单通信配置,能实现SPI1发送 数据,SPI2接收数据简单通信功能,仅供测试使用。 *********************************** ...…

查看全部问答>

南华大学黄智伟系列 --2011年赛前赛题大分析!

本帖最后由 paulhyde 于 2014-9-15 09:27 编辑 2011.8.25全国大学生电子设计竞赛组委会专家组在网上公布本次全国大学生电子设计竞赛需要的基本仪器和主要元器件清单,以便参赛学校做好准备。通过对所公布的基本仪器和主要元器件清单进行分析,可以 ...…

查看全部问答>

LM3S中断程序调通了!

   经过奋斗,LM3S811的中断程序调通了! ** Created By:                    hu_hejiaun lai_qingmin** Created date:  & ...…

查看全部问答>

编程风格

关于C语言编程,括号必须与括号内的内容紧挨着吗?我总是喜欢把括号与括号里的内容用空格隔开空格,如:( void )。这样有什么弊端,…

查看全部问答>