各位工程师,你们好~
我现在使用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?
希望收到回复,谢谢~
Susan Yang:
建议您参考一下
dev.ti.com/…/
Susan Yang:
/* --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 //--|RSTXOUT|- //|| //|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 WDTP1DIR |= 0x01;// P1.0 outputTACTL = 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 ){case2:break;// CCR1 not usedcase4:break;// CCR2 not usedcase 10:P1OUT ^= 0x01;// overflowbreak;} }
灰小子:
遇到这类问题,最常见的方法就是先找官网例程运行一下,如果运行例程没问题硬件基本就没有问题了,然后再对比自己写的代码和例程,看是哪里配置不合适。