This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430G2553寄存器配置方式,ACLK作为定时器Timer0的时钟源

Other Parts Discussed in Thread: MSP430G2553

各位工程师,你们好~

我现在使用MSP430G2553型号的单片机,外接32768hz。选择ACLK作为定时器Timer0的时钟源,发现无法使用,向您咨询一下使用方法和寄存器配置方式。

我的配置如下:

(1)IO口配置

P2DIR = 0xc2;

P2SEL = 0xc0;

P2SEL = 0xc0;

(2)定时器配置

TA0CTL = TASSEL_1 + ID_3 + MC_2; 

(3)时钟配置

BCSCTL3 |= LFXT1S_0;

之后我根据TI Resource Explorer例程,配置了io口,但仍然无法使用,请问是否需要配置BCSCTL3?

希望收到回复,谢谢~

  • /* --COPYRIGHT--,BSD_EX
     * Copyright (c) 2012, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
     *******************************************************************************
     * 
     *                       MSP430 CODE EXAMPLE DISCLAIMER
     *
     * MSP430 code examples are self-contained low-level programs that typically
     * demonstrate a single peripheral function or device feature in a highly
     * concise manner. For this the code may rely on the device's power-on default
     * register values and settings such as the clock configuration and care must
     * be taken when combining code from several examples to avoid potential side
     * effects. Also see www.ti.com/grace for a GUI- and www.ti.com/msp430ware
     * for an API functional library-approach to peripheral configuration.
     *
     * --/COPYRIGHT--*/
    //******************************************************************************
    //  MSP430G2xx3 Demo - Timer_A, Toggle P1.0, Overflow ISR, 32kHz ACLK
    //
    //  Description: Toggle P1.0 using software and the Timer_A overflow ISR.
    //  In this example an ISR triggers when TA overflows. Inside the ISR P1.0
    //  is toggled. Toggle rate is exactly 0.5Hz. Proper use of the TA0IV interrupt
    //  vector generator is demonstrated.
    //  ACLK = TACLK = 32768Hz, MCLK = SMCLK = default DCO
    //  //* An external watch crystal on XIN XOUT is required for ACLK *//	
    //
    //           MSP430G2xx3
    //         ---------------
    //     /|\|            XIN|-
    //      | |               | 32kHz
    //      --|RST        XOUT|-
    //        |               |
    //        |           P1.0|-->LED
    //
    //  D. Dang
    //  Texas Instruments Inc.
    //  December 2010
    //   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
    //******************************************************************************
    
    #include <msp430.h>
    
    int main(void)
    {
      WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
      P1DIR |= 0x01;                            // P1.0 output
      TACTL = TASSEL_1 + MC_2 + TAIE;           // ACLK, contmode, interrupt
    
      __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3 w/ interrupt
    }
    
    // Timer_A3 Interrupt Vector (TA0IV) handler
    #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
    #pragma vector=TIMER0_A1_VECTOR
    __interrupt void Timer_A(void)
    #elif defined(__GNUC__)
    void __attribute__ ((interrupt(TIMER0_A1_VECTOR))) Timer_A (void)
    #else
    #error Compiler not supported!
    #endif
    {
      switch( TA0IV )
      {
        case  2:  break;                        // CCR1 not used
        case  4:  break;                        // CCR2 not used
        case 10:  P1OUT ^= 0x01;                // overflow
                  break;
      }
    }
    
    

  • 遇到这类问题,最常见的方法就是先找官网例程运行一下,如果运行例程没问题硬件基本就没有问题了,然后再对比自己写的代码和例程,看是哪里配置不合适。