MSP430F5438学习笔记 DCO倍频至8MHZ

来源:本站
导读:目前正在解读《MSP430F5438学习笔记 DCO倍频至8MHZ》的相关信息,《MSP430F5438学习笔记 DCO倍频至8MHZ》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《MSP430F5438学习笔记 DCO倍频至8MHZ》的详细说明。
简介:MSP430F5438学习笔记 DCO倍频至8MHZ

1.平台说明 MS430F5438

// 时钟默认情况

// FLL时钟 FLL选择 XT1

// 辅助时钟 ACLK选择 XT1 32768Hz

// 主系统时钟 MCLK选择 DCOCLKDIV 1048576Hz

// 子系统时钟 SMCLK选择 DCOCLKDIV 1048576Hz

#include <msp430.h>

void clock_config(void);

void select_xt1(void);

void dco_config(void);

int main(void)

{

clock_config(); // 初始化时钟

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

while(1)

{

P4OUT ^= BIT0;

__delay_cycles(1000000);

}

}

void clock_config(void)

{

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

select_xt1(); // 选择XT1

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

// MCLK = SMCLK = 8000K

}

void select_xt1(void)

{

// 启动XT1

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

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

UCSCTL6 |= XCAP_3; // 内部电容

do

{

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

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

}

void dco_config(void)

{

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

UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx

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

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

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

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

// Ffllrefclk FLL参考时钟,默认为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); // 等待清楚完成

}

提醒:《MSP430F5438学习笔记 DCO倍频至8MHZ》最后刷新时间 2024-03-14 01:13:54,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《MSP430F5438学习笔记 DCO倍频至8MHZ》该内容的真实性请自行鉴别。