⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 自己作的小程序(原代码) 如有密码为本站网址
💻 C
字号:
/******************************************************************
*  
* 文件说明:
*     
******************************************************************/

#include <MSP430x12x.h>

/*****************************************************************
*     main()函数
*****************************************************************/

void main(void)
{
    unsigned int i;
    WDTCTL   = WDTPW + WDTHOLD;   // 停止看门狗定时器 
    P1DIR   |= 0x01;              // 设置 P1.1输出
    P1SEL   |= 0x01;              // P1.1用作MCLK输出          
    //FLL_CTL1 = FLL_DIV0;        // 设置 p1.5 输出频率             
                                  // 设置 FLL_CTL1 = 0x32;
    //SCFQCTL  =0x09;             // 设置 SMCLK = ACLK * 10  
                                  // 设置 MCLK = ACLK * 10               
    //while(1);                   //空循环,供用户检测其输出频率 

    BCSCTL1 &= ~XT2OFF;           //XT2有效
    do
       {
        IFG1 &= ~OFIFG;            //清除振荡器失效标志
        for (i= 0xFF; i>0; i--);   //稳定时间
       }
    while ((IFG1 & OFIFG) != 0);   //如果振荡器失效标志存在
    BCSCTL2 |= SELM1;              //MCLK=XT2
    for (;;);
}

//******************************************************************************
//  MSP-FET430X110 Demo - Timer_A Toggle P1.0, CCR0 Contmode ISR, DCO SMCLK 
//
//  Description; Toggle P1.0 using using software and TA_0 ISR. Toggle rate is 
//  set at 50000 DCO/SMCLK cycles. Default DCO frequency used for TACLK. 
//  Durring the TA_0 ISR P0.1 is toggled and 50000 clock cycles are added to 
//  CCR0.  TA_0 ISR is triggered exactly 50000 cycles. CPU is normally off and
//  used only durring TA_ISR.  
//  ACLK = n/a, MCLK = SMCLK = TACLK = DCO~ 800k 
//   
//
//           MSP430F1121
//         ---------------
//     /|\|            XIN|-  
//      | |               |
//      --|RST        XOUT|-
//        |               |
//        |           P1.0|-->LED
//
//  M. Buccini
//  Texas Instruments, Inc
//  October 2003
//  Built with IAR Embedded Workbench Version: 2.20A
//******************************************************************************

#include  <msp430x11x1.h>

void main(void)
{ 
  WDTCTL = WDTPW + WDTHOLD;             // Stop WDT
  P1DIR |= 0x01;                        // P1.0 output
  CCTL0 = CCIE;                         // CCR0 interrupt enabled
  CCR0 = 50000;

//修改这里,使用ACLK,就可以用32768
  TACTL = TASSEL_2 + MC_2;              // SMCLK, contmode

  _BIS_SR(LPM0_bits + GIE);             // Enter LPM0 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  P1OUT ^= 0x01;                        // Toggle P1.0

//修改这里改变脉冲宽度
  CCR0 += 50000;                        // Add Offset to CCR0
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -