• 大小: 27KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: msp430  

资源简介

msp430g2553单片机定时器中断例程

资源截图

代码片段和文件信息

/**************************WENHUA COLLEDGE ZERO GROUP***************************
学习目标:定时器A中断间隔设定
作者:    钟皇平
时间:    2014.12.18
*******************************************************************************/
#include  “msp430g2553.h“
unsigned int count=0;
//一般情况下我们使用Timer A0 0定时器或Timer A1 0定时器就可以了,因为我们可以方便的设定进入中断函数的间隔,
//而Timer A0 1 Timer A1 1定时器因为定时器进入中断函数的时间间隔目前我发现是无法改变的,进入频率极高(实验测得间隔时间为大概20us),
//太过频繁的进入中断函数会影响其他函数的运行,所以我们一般不用,这里写出只是为了方便大家学习
void InitClock()                                              //初始化时钟  Set DCO
{                                                             //从flash的information区把校正好的参数读进来
  BCSCTL1 = CALBC1_16MHZ;                                     //CALDCO_16MHZ 所代表的值已经被厂家存储在单片机
  DCOCTL = CALDCO_16MHZ;                                      //的FLASH信息存储器Segment段0x10F8~0x10FF地址中
  BCSCTL2|=DIVS_3;                                            //选择SMCLK时钟为DCO 8分频即2Mhz
}
void TimerA00IntInit()                                        //Timer A0 0定时器初始化函数
{
  TACTL = TASSEL_2 + MC_1+ID_1+TACLR;                         // SMCLK 2分频 upmode
  CCTL0 = CCIE;                                               // CCR0 interrupt enabled
  CCR0 = 50000;                                               //进入中断函数的间隔 单位:us
}
void TimerA01IntInit()                                        //Timer A0 1定时器初始化函数
{
  TA0CTL = TASSEL_2 + MC_1+ID_1+TACLR+TAIE;                   // SMCLK 2分频 upmode
  TA0CCR0 = 50000;                                            //进入中断函数中case 10分支的间隔(实验测得进入中断函数的间隔大概是20us) 单位:us
}
void TimerA10IntInit()                                        //Timer A1 0定时器初始化函数
{
  TA1CTL = TASSEL_2 + MC_1+ID_1+TACLR;                        // SMCLK 2分频 upmode
  TA1CCTL0 = CCIE;                                            // CCR0 interrupt enabled
  TA1CCR0 = 50000;                                            //进入中断函数的间隔 单位:us
}
void TimerA11IntInit()                                        //Timer A1 1定时器初始化函数
{
  TA1CTL = TASSEL_2 + MC_1+ID_1+TACLR+TAIE;                   // SMCLK 2分频 upmode
  TA1CCR0 = 50000;                                            //进入中断函数中case 10分支的间隔(实验测得进入中断函数的间隔大概是20us) 单位:us
}
void main()
{
  WDTCTL = WDTPW + WDTHOLD;                                   // 关闭看门狗
  InitClock();                                                //时钟初始化
  TimerA01IntInit();                                          //Timer A0 1通道初始化函数
  P1DIR |= 0x01;                                              // P1.0 output
  _EINT();                                                    //使能全局中断
   
  while(1)
  {
  }
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TimerA00Int()
{
  count++;
  if(count==20)
  {
    count=0;
    P1OUT ^= 0x01;                                           // Toggle P1.0
  }
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void TimerA01Int()
{
  switch( TA0IV )                                            //判断中断标志
  {
    case  2: break;                                

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-12-20 22:32  Timer A 定时中断\
     目录           0  2014-12-17 14:49  Timer A 定时中断\Debug\
     目录           0  2014-12-17 16:08  Timer A 定时中断\Debug\Exe\
     文件       17318  2014-12-20 22:32  Timer A 定时中断\Debug\Exe\设置时钟.d43
     目录           0  2014-12-20 22:33  Timer A 定时中断\Debug\List\
     目录           0  2014-12-20 22:32  Timer A 定时中断\Debug\Obj\
     文件           0  2014-12-20 22:32  Timer A 定时中断\Debug\Obj\main.pbi
     文件        9927  2014-12-20 22:32  Timer A 定时中断\Debug\Obj\main.pbi.cout
     文件       12109  2014-12-20 22:32  Timer A 定时中断\Debug\Obj\main.r43
     文件           0  2014-12-20 22:32  Timer A 定时中断\Debug\Obj\设置时钟.pbd
     文件           0  2014-12-20 22:32  Timer A 定时中断\Debug\Obj\设置时钟.pbd.browse
     文件        4864  2014-12-20 22:32  Timer A 定时中断\main.c
     文件           0  2014-12-17 16:57  Timer A 定时中断\path.txt
     文件         186  2013-08-23 18:40  Timer A 定时中断\settime.eww
     目录           0  2014-12-17 14:49  Timer A 定时中断\settings\
     文件        3963  2014-12-20 22:33  Timer A 定时中断\settings\settime.wsdt
     文件        1676  2014-12-20 22:25  Timer A 定时中断\settings\设置时钟.cspy.bat
     文件       12695  2014-12-20 22:33  Timer A 定时中断\settings\设置时钟.dbgdt
     文件        1494  2014-12-20 22:33  Timer A 定时中断\settings\设置时钟.dni
     文件        1970  2014-12-20 22:33  Timer A 定时中断\设置时钟.dep
     文件       20422  2013-08-23 18:40  Timer A 定时中断\设置时钟.ewd
     文件       52297  2013-08-23 18:40  Timer A 定时中断\设置时钟.ewp
     文件          25  2014-12-20 22:33  Timer A 定时中断\设置时钟CustomSfr.sfr

评论

共有 条评论