单片机MSP430入门--理论④--时钟模块-BCSCTL2寄存器

发布者:码字探险最新更新时间:2021-02-07 来源: eefocus关键字:单片机  MSP430  时钟模块  寄存器 手机看文章 扫描二维码
随时随地手机看文章

上期大概给大家汇总介绍了,在MSP430环境下的时钟寄存器DOCCTL和BCSCTL1寄存器,每个位代表的意义以及他们的设置方法



本期将重点介绍下,在MSP430环境下的时钟寄存器BCSCTL2,他每个位的意义以及他们的设置方法

1.0 BCSCTL2(Basic Clock System Control2)寄存控制器(用来设置SMCLK子时钟,MCLK主时钟),地址为58H,初始值为00H



SELM0-SELM1: 选择MCLK的时钟源,0和1为DCOCLK,2为XT2CLK,3为LFXT1CLK

DIVM0-DIVM1: 选择MCLK的分频因子,DIVM=0,1,2,3,对应MCLK的分频因子1,2,4,8

SELS: 选择SMCLK的时钟源,0为DCOCLK,1为XT2CLK/LFXTCLK

DIVS0-DIVS1: DIVS = 0,1,2,3,对应SMCLK的分频因子为1,2,4,8

DCOR: 选择电阻,0为内部电阻,1为外部电阻


示例:

设置BCSCTL2,选定MCLK和SMCLK的时钟源XT2,并设置其分频因子

①DCOR一般设置为默认值内部电阻

②选择MCLK的时钟源,BCSCTL2 = SELM_2;

选择SMCLK的时钟源,BCSCTL2 = SELS;

选择MCLK跟SMCLK的时钟源XT2,BCSCTL2 = SELM_2 + SELS;

③设置MCLK的分频因子,

BCSCTL2 = DIBM_0;//不分频

BCSCTL2 = DIBM_1;//2分频

BCSCTL2 = DIBM_2;//4分频

BCSCTL2 = DIBM_3;//8分频

④设置SMCLK的分频因子,

BCSCTL2 = DIVM_0; //不分频

BCSCTL2 = DIVM_1; //2分频

BCSCTL2 = DIVM_2; //4分频

BCSCTL2 = DIVM_3; //8分频


3.0 OFIFG是振荡器标志失效标志位,当用外部晶振时,如果外部晶振正常起震了,那OFIFG就会变成0,默认为1,所以没起震的话要继续循环等待,具体源程序如下:



在PUC信号后,由DCOCLK作MCLK的时钟信号,根据需要可将MCLK的时钟源另外设置为LFXT1或XT2,设置顺序如下:

  (1)清OSCOFF/XT2

  (2)清OFIFG

  (3)延时等待至少50uS

  (4)再次检查OFIFG,如果仍置位,则重复(1)-(4)步,直到OFIFG=0为止。

  (5)设置BCSCTL2的相应SELM。

具体主要代码如下:

WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

/*------选择系统主时钟为8MHz-------*/

BCSCTL1&=~XT2OFF;//打开XT2高频晶体振荡器

do

{

IFG1&=~OFIFG;//清除晶振失败标志

for(i=0xFF;i》0;i--);//等待8MHz晶体起振

}

while((IFG1&OFIFG));//晶振失效标志仍然存在,只有跳出循环的时候才认为晶振起震了

BCSCTL2|=SELM_2+SELS;//主时钟和从时钟都选择高频晶振

BCSCTL2=SELM_2+SELS;语句必须放在while之后,因为当XT2没有起振之前,XT2处于错误阶段,因此在XT2没有起振之前将它设定为主时钟与子系统时钟后,单片机会自动的将DCO设定为SMCLK MCLK的时钟源



关键字:单片机  MSP430  时钟模块  寄存器 引用地址:单片机MSP430入门--理论④--时钟模块-BCSCTL2寄存器

上一篇:单片机MSP430入门--理论①--MSP430简介
下一篇:MSP430单片机软件开发集成环境CCS

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved