在MSP430编程时如何得到周期为1s的信号

来源:百度知道 编辑:UC知道 时间:2024/07/12 14:53:03
中断时间为1s也行。本人是初学者,请详细说明。谢谢!
不懂为什么计数是32678,这个数是怎么计算出来的?谢谢!
另外,怎解释BCSCTL2 &=0xc0;//XT2CLK+2分频(0xc0=11000000只能说明选择了XT2CLK,为什么还有个2分频呢?)
PS:我用的是MSP430f149的单片机

32.768M晶振提供的记时周期为1/32768秒,计数32768次为1秒
选择XT2有效语句是这样

BCSCTL1 &=~XT2OFF; 你可能理解错了

#include <msp430x44x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
TACTL = TASSEL_1 + TACLR; // ACLK
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 32768;
P5DIR |= 0x02; // P5.1 output
TACTL |= MC1; // 连续计数模式
_EINT(); // Enable interrupts

for (;;)
{
_BIS_SR(CPUOFF); // CPU off
_NOP(); // Required only for C-spy
}
}

// Timer A0 interrupt service routine
//interrupt[TIMERA0_VECTOR] void Timer_A (void)
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P5OUT ^= 0x02; // Toggle P5.1
CCR0 += 32768;