当前位置:首页 > 单片机 > 单片机
[导读]1.平台说明 MS430F5438//时钟默认情况//FLL时钟FLL选择XT1//辅助时钟ACLK选择XT132768Hz//主系统时钟MCLK选择DCOCLKDIV1048576Hz//子系统时钟SMCLK选择DCOCLKDIV1048576Hz#includevoidclock_config(void);voidselect

1.平台说明 MS430F5438


//时钟默认情况

//FLL时钟FLL选择XT1

//辅助时钟ACLK选择XT132768Hz

//主系统时钟MCLK选择DCOCLKDIV1048576Hz

//子系统时钟SMCLK选择DCOCLKDIV1048576Hz

#include

voidclock_config(void);

voidselect_xt1(void);

voiddco_config(void);

intmain(void)

{

clock_config();//初始化时钟

P4DIR|=BIT0;//P4.0输出

while(1)

{

P4OUT^=BIT0;

__delay_cycles(1000000);

}

}

voidclock_config(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗

select_xt1();//选择XT1

dco_config();//ACLK=XT1=32.768K

//MCLK=SMCLK=8000K

}

voidselect_xt1(void)

{

//启动XT1

P7SEL|=0x03;//P7.0P7.1外设功能

UCSCTL6&=~(XT1OFF);//XT1打开

UCSCTL6|=XCAP_3;//内部电容

do

{

UCSCTL7&=~XT1LFOFFG;//清楚XT1错误标记

}while(UCSCTL7&XT1LFOFFG);//检测XT1错误标记

}

voiddco_config(void)

{

__bis_SR_register(SCG0);//禁止FLL功能

UCSCTL0=0x0000;//SetlowestpossibleDCOx,MODx

UCSCTL1=DCORSEL_5;//DCO最大频率为16MHz

UCSCTL2=FLLD_1+243;//设置DCO频率为8MHz

//MCLK=SMCLK=Fdcoclkdiv=(N+1)X(Ffllrefclk/n)

//N为唯一需要计算的值

//FfllrefclkFLL参考时钟,默认为XT1

//n取默认值,此时为1

//(243+1)*32768=8MHz

__bic_SR_register(SCG0);//使能FLL功能

//必要延时

__delay_cycles(250000);

//清楚错误标志位

do

{

UCSCTL7&=~(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);

//清除所有振荡器错误标志位

SFRIFG1&=~OFIFG;//清除振荡器错误

}while(SFRIFG1&OFIFG);//等待清楚完成

}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭