历史上的今天
返回首页

历史上的今天

今天是:2025年02月11日(星期二)

正在发生

2020年02月11日 | MSP430G2553 定时器中断实例

2020-02-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;

推荐阅读

史海拾趣

FLIR公司的发展小趣事

FLIR一直将技术创新视为企业发展的核心驱动力。在过去的几十年里,公司不断推出具有革命性的红外热像仪产品。例如,1985年,FLIR研制出全球首台无需液氮制冷的高性能红外热像仪系统;1993年,公司推出了全球首台高分辨率平面(FPA)热像仪;2000年,FLIR又推出了可同时拍摄红外图像和可见光图像的红外热像仪ThermaCAM PM695。这些创新产品不仅提升了红外热像仪的性能和易用性,还推动了整个行业的技术进步和产业升级。

Avalon Photonics公司的发展小趣事

Avalon Photonics的创立源于一次技术突破。创始人Dr. Smith在光子学领域有着深厚的学术背景,他成功研发出了一种新型的光子探测器,具有极高的灵敏度和稳定性。这一创新技术迅速引起了业界的关注。Dr. Smith看到了商业化的潜力,于是决定成立Avalon Photonics,将这项技术转化为实际产品。初创期的Avalon面临着资金短缺和市场认知度低的挑战,但凭借着技术优势和团队的努力,逐渐在市场上站稳脚跟。

Eris Technology Corp公司的发展小趣事

在汽车电子市场取得成功后,Eris Tech开始将目光投向工业控制领域。通过深入了解工业控制市场的需求和技术特点,公司成功开发出多款适用于工业控制领域的半导体产品。这些产品不仅具有高性能、高可靠性等特点,还能满足工业控制领域对实时性、安全性等方面的要求。随着工业控制领域的不断拓展,Eris Tech在该领域的市场份额也逐渐增加。

CUI公司的发展小趣事

随着环保意识的逐渐提升,电子行业开始寻求更加环保的CUI材料和生产工艺。一些公司投入大量研发资金,成功开发出低挥发性有机化合物(VOC)含量的CUI涂料,不仅降低了生产过程中的环境污染,还提高了产品的环保性能。

普芯达电子(Chipswinner)公司的发展小趣事

在电子行业中,技术创新是企业持续发展的关键。普芯达电子深知这一点,因此始终将技术创新作为公司发展的核心驱动力。公司不断加大研发投入,引进先进技术和设备,培养了一支高素质的研发团队。通过持续的技术创新和产品升级,普芯达电子不断推出具有市场竞争力的新产品,为客户提供了更加优质和多样化的选择。

BVLED公司的发展小趣事

随着市场的不断变化和竞争的加剧,BVLED公司意识到只有不断创新才能在行业中立足。于是,公司加大了对研发的投入,引进了一批高素质的研发人才,并与多家高校和研究机构建立了合作关系。通过不断的实验和改进,公司成功推出了一系列具有创新性的LED产品,如智能调光LED灯、高显色指数LED灯等,这些产品在市场上获得了广泛的认可。

问答坊 | AI 解惑

STN液晶显示原理

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 STN液晶显示原理STN型的显示原理与TN相类似,不同的是TN扭转式向列场效应的液晶分子是将入射光旋转90度,而STN超扭转式向列场效应是将入射光旋转180~270度。  要在这里说明的是,单 ...…

查看全部问答>

广州青少年机器人大赛太难 学生难以单独完成

本帖最后由 paulhyde 于 2014-9-15 09:49 编辑 有感于现在小学生都在玩机器人,转贴 ============================= 题目越来越难,一般学生难以单独完成,只能由老师一手包办 昨日,广州市青少年机器人竞赛在芳村小学举行。照明节能日光灯、 ...…

查看全部问答>

ISP下载如何制作

各位高手:             我是一位单片机初学者,现在用AT89S52,想自已做一根并口下载线,网上搜索了下确实很多这方面的资料,我也试着制作,但无论用74LS244还是用74HC373都不行,图和软件如附档,请高手帮忙看 ...…

查看全部问答>

【电子书】电子设计竞赛赛题解析

本帖最后由 paulhyde 于 2014-9-15 03:32 编辑 一本电子设计竞赛赛题解析,希望各位好运~~~ 打开这本电子书需要用到超新星图书浏览器,也放在附件中了 下载地址:http://www.ssreader.com/download/download.html [ 本帖最后由 open82977352 于 ...…

查看全部问答>

讨论最有性价比的TPMS方案

TPMS已经成为汽车电子的一个热点,随着相关法规的出台,它的需求量将会激增。对于TPMS的设计师来说,求得一个高的性能/价格比的方案是至关重要的。TPMS的发射器涉及P/T/A/V+ASIC传感器模块、MCU、RF、电池、天线和外型的工业设计,如何来选型?如何 ...…

查看全部问答>

一个比较全面的放大器参数说明 (转)

工作频率范围(F): 指放大器满足各级指标的工作频率范围。放大器实际的工作频率范围可能会大于定义的工作频率范围。 功率增益(G): 指放大器输出功率和输入功率的比值,单位常用“dB”。 增益平坦度(ΔG): 指在一定温度下,在整个工作 ...…

查看全部问答>

关天fseek(fp_Write, 0L, SEEK_END);指向文件未尾应用

关天fseek(fp_Write, 0L, SEEK_END);指向文件未尾应用 bool SaveToBookMark3(char* pBookMarkTitle, char* pUrl ) {         //char FullPath[256] = {\"\\\\Windows\\\\收藏夹\\\\\"};         char ...…

查看全部问答>

求助:保定飞凌OK2440-III开发板,启动wince时,无法进入系统,始终停止在启动画面。

开发板:ok2440-III 问题:启动wince时,无法进入系统,始终停留在启动画面。指示灯LED0亮。(注:可启动Linux操作系统,但无法使用触屏功能。) DNW启动时内容如下: +------------------------------------------------------------+ |  ...…

查看全部问答>

如何调整 程序安装 对话框的宽度

我们的CE产品要求显示是potrait mode。为了降低成本,我们用的是landscape形式的LCD。然后在注册表中旋转90度。这样,显示就成了标准的portrait mode。大部分对话框的显示也是正常的,但是只有程序安装界面还是landscape mode的宽度和高度。所以, ...…

查看全部问答>

Verilog一些简单问题解答

1.为什么仿真时总出现脉冲?那就是竞争冒险吗?可是实验给出的图形是很完美的响应啊,我的却总是激励过后一段时间才有响应的波形   答:数据的过渡状态,可以认为是冒险竞争,不是所有的情况都是这样的2.在引脚分配时同样的字母大小写不一致 ...…

查看全部问答>