我用的是MSP430FG4619,我试了TI给的RTC的sample code,但是一点反应都没有
RTC是不是一定要用ACLK?我没有装外部32KHZ晶体,只用内部时钟可以吗?
这是我的code
#include <msp430xG46x.h>
//------------------------------------------------------------------------------
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer
_BIS_SR(OSCOFF + SCG0 + GIE);
FLL_CTL0 |= OSCCAP0; // capacitance setting
do
{
IFG1 &= ~OFIFG; // Clear oscillator fault flag
for ( i=50000; i==0; i--); // Delay
}
while (IFG1 & OFIFG); // Test osc fault flag // DCO to stabilize.
__delay_cycles( 1000 );
RTCCTL = RTCBCD+RTCHOLD+RTCMODE_3+RTCTEV_0+RTCIE;
// RTC enable, BCD mode,
// alarm every Minute,
// enable RTC interrupt
BTCTL|=BTSSEL;
BTCTL&=~BTDIV;
IE2|=BTIE;
// Init time
RTCSEC = 0x00; // Set Seconds
RTCMIN = 0x00; // Set Minutes
RTCHOUR = 0x08; // Set Hours
// Init date
RTCDOW = 0x02; // Set DOW
RTCDAY = 0x23; // Set Day
RTCMON = 0x08; // Set Month
RTCYEAR = 0x2005; // Set Year
RTCCTL &= ~RTCHOLD; // Enable RTC
P5DIR |= 0x02; // Set P5.1 to output direction
P5OUT =0;
__bis_SR_register(LPM0_bits + GIE); // Enter LPM3 w/ interrupt
}
// Basic Timer interrupt service routine
#pragma vector=BASICTIMER_VECTOR
__interrupt void basic_timer(void)
{
P5OUT ^= 0x02; // Toggle P5.1 using exclusive-OR
}
让我感到很奇怪的是,我用了 IE2|=BTIE; 但是当程序运行后BTIE还是0,这是什么情况啊?
请高手指点!谢谢!
此帖出自
小平头技术问答
一周热门 更多>