MSP430单片机 时钟问题
/****************************************************本例程是设置时钟模块的工作方式和相关的控制寄存器。以MSP430...
/****************************************************
本例程是设置时钟模块的工作方式和相关的控制寄存器。
以MSP430FI49和C程序编写。
1. 设置主时钟信号MCLK=TX2
2. 子时钟信号SMCLE=DCOCLK
3. 将MCLK从MSP430FI49的P5.4口输出
在F14X系列中P5.4和MCLK是服用的。
****************************************************/
#include <msp430x14x.h>
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
unsigned int i;
P5OUT |= BIT4; //P5.4输出
P5SEL |= BIT4; //MCLK从P5.4口输出
BCSCTL1 &= ~XT2OFF; //第八位置0 其它不变 开启TX2
do
{
IFG1 &= ~OFIFG; //清振荡器失效标志
for (i = 0xff; i>0; i--); //延时 待稳定
}
while((IFG1 & OFIFG)!=0);
BCSCTL2 |= SELM_2; //MCLK时钟源为TX2 SMCLK默认DCOCLK
for(;;);
}
其中
do
{
IFG1 &= ~OFIFG; //清振荡器失效标志
for (i = 0xff; i>0; i--); //延时 待稳定
}
while((IFG1 & OFIFG)!=0);
这一段不知道为什么必要 在什么时候需要 具体作用是什么?有高手可以耐心地高手我吗?? 展开
本例程是设置时钟模块的工作方式和相关的控制寄存器。
以MSP430FI49和C程序编写。
1. 设置主时钟信号MCLK=TX2
2. 子时钟信号SMCLE=DCOCLK
3. 将MCLK从MSP430FI49的P5.4口输出
在F14X系列中P5.4和MCLK是服用的。
****************************************************/
#include <msp430x14x.h>
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
unsigned int i;
P5OUT |= BIT4; //P5.4输出
P5SEL |= BIT4; //MCLK从P5.4口输出
BCSCTL1 &= ~XT2OFF; //第八位置0 其它不变 开启TX2
do
{
IFG1 &= ~OFIFG; //清振荡器失效标志
for (i = 0xff; i>0; i--); //延时 待稳定
}
while((IFG1 & OFIFG)!=0);
BCSCTL2 |= SELM_2; //MCLK时钟源为TX2 SMCLK默认DCOCLK
for(;;);
}
其中
do
{
IFG1 &= ~OFIFG; //清振荡器失效标志
for (i = 0xff; i>0; i--); //延时 待稳定
}
while((IFG1 & OFIFG)!=0);
这一段不知道为什么必要 在什么时候需要 具体作用是什么?有高手可以耐心地高手我吗?? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询