小白最近刚开始学习MSP430,发现时钟系统蛮复杂的,于是找到一个前辈关于时钟学习的总结跑程序,里面有四个时钟程序,第一个利用VLO时钟源,第二利用外接晶振32768时钟,跑第一个程序OK,差不多3秒led闪烁一次。但跑第二个程序的时候发现时钟启动不了晶振,求高手指导!
我的程序:
#include<msp430g2553.h>
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR = 0x41; // P1.0 和 P1.6 配置输出
P1OUT = 0x01; // 开启 P1.0
BCSCTL3 |= LFXT1S_0; // LFXT1 = 32768Hz 晶振
while(IFG1 & OFIFG) //最后一直在while循环中跑,不能出去
{
IFG1 &= ~OFIFG; // 清除 OSCFault 标志
__delay_cycles(100000); // 为可见的标志延时
}
P1OUT = 0; // 关闭P1
__bis_SR_register(SCG1 + SCG0); // 关闭 DCO
BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = 32768/8
while(1)
{
P1OUT = 0x40; // 开启 LED
__delay_cycles(100);
P1OUT = 0; // 关闭LED
__delay_cycles(5000);
}
//return 0;
} |