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

📄 430_clks.c

📁 利用辅助时钟周期性产生脉冲
💻 C
字号:
//******************************************************************************
//  MSP-FET430P140 Demo - Basic Clock, Output Buffered SMCLK, ACLK and MCLK
//
//  Description: Output buffered MCLK, SMCLK and ACLK.
//  ACLK = LFXT1 = 32768, MCLK = DCO Max, SMCLK = XT2
//  //* XTAL's REQUIRED - NOT INSTALLED ON FET *//
//  //* Min Vcc required varies with MCLK frequency - refer to datasheet *//	
//
//                MSP430F149
//            -----------------
//        /|\|              XIN|-
//         | |                 | 32k
//         --|RST          XOUT|-
//           |                 |
//           |            XT2IN|-
//           |                 | XTAL (455k - 8Mhz)
//           |RST        XT2OUT|-
//           |                 |
//           |             P5.4|-->MCLK = DCO Max
//           |             P5.5|-->SMCLK = XT2
//           |             P5.6|-->ACLK = 32kHz
//
//  M. Buccini
//  Texas Instruments Inc.
//  Feb 2005
//  Built with IAR Embedded Workbench Version: 3.21A
//******************************************************************************

#include  <msp430x24x.h>
void Pulse(void);
void Init_Board_Pin_HMC(void);

void main(void)
{
  int i;
   //long j;
  WDTCTL = WDTPW +WDTHOLD;                  // Stop Watchdog Timer
  DCOCTL = DCO0 + DCO1 + DCO2;              // Max DCO
  //BCSCTL1 =RSEL2+RSEL3;                     // XT2on, max RSEL
 // BCSCTL3=XT2S1;
 // BCSCTL2 |= SELS;                          // SMCLK = XT2 +SELM1
  BCSCTL1 &= ~XT2OFF;                       // Activate XT2 high freq xtal
  BCSCTL3 |= XT2S_2;                        // 3 ?16MHz crystal or resonator
   
  do
  {
    IFG1 &= ~OFIFG;                         // Clear OSCFault flag
    for (i = 0xFF; i > 0; i--);             // Time for flag to set
  }
  while (IFG1 & OFIFG);                     // OSCFault flag still set?

  BCSCTL2 |= SELM_2;                        // MCLK = XT2 HF XTAL (safe)
  BCSCTL2 |= SELS;
  //P5DIR |= 0x70;                            // P5.6,5,4 outputs
 // P5SEL |= 0x70;                            // P5.6,5,5 options
   
  /*********************
   CCTL0 = CCIE;                             // CCR0 interrupt enabled
   CCR0 = 300;
   TACTL = TASSEL_2 + MC_2;                  // SMCLK, contmode
   P1DIR|=0x01;
  
  **********************/
    Init_Board_Pin();
    for(;;)
    Pulse();
    _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt

 
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  CCR0+=300;
  P1OUT^=0x01;
}


void Pulse(void)
{
  int i=3000;
 
   while(i>0)
   i--; 
   P1OUT ^= 0x08;
   i=3000;
   while(i>0)
   i--;
   P1OUT ^= 0x08;
  
}

void Init_Board_Pin(void)
{
 
 
  P1DIR|=0x08;
  P1OUT= 0;
  
}

⌨️ 快捷键说明

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