[求助] 对于msp430的时钟问题

xiazeyang1830   2012-10-29 21:39 楼主
/******************************************************************/
void Init_Clk( void )
{
    WDTCTL = WDTPW + WDTHOLD;                 // 关看门狗
    BCSCTL3 |= XT2S_2;                        // XT2频率范围设置
    BCSCTL1 &= ~XT2OFF;                       // 打开XT2振荡器
    do
    {
        IFG1 &= ~OFIFG;                       // 清振荡器失效标志
        BCSCTL3 &= ~XT2OF;                    // 清XT2失效标志
        for( uint i = 0x47FF; i>0; i-- );   // 等待XT2频率稳定
    }while (IFG1 & OFIFG);                    // 外部时钟源正常起动了吗?
    BCSCTL2 |= SELM_2 + SELS ;                // 设置MCLK、SMCLK为XT2
}

程序总死在for那里,外部晶振不需要接吧?求指导  我菜鸟哦

回复评论 (3)

你的芯片有XT2吗?
点赞  2012-11-1 21:54
XT2就是外部晶振,不接不行吧?
点赞  2012-11-2 13:50
楼主你要确定是否接了外部晶振,如果起动内部8M的晶振的话。
试试这个程序怎么样。
void Init_Clk()
{  
   unsigned int i;
   WDTCTL=WDTPW+WDTHOLD;    //关闭看门狗;
   BCSCTL1&=~XT2OFF;                   //打开XT2振荡器;
  do
    {           
        IFG1&=~OFIFG;                         // 清除振荡器失效标志;
       for(i=0xff;i>0;i--);                          // 延时,等待XT2起振;
    }
   while ((IFG1&OFIFG)!=0);               // 判断XT2是否起振;
BCSCTL2|=SELM_2+SELS;          //选择MCLK、SMCLK为XT2;

}
点赞  2012-11-3 16:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复