打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MSP430基本时钟模块
1.三个时钟:主时钟MCLK,子系统时钟SMCLK,辅助时钟ACLK
三个时钟的用途各不相同,其中MCLK是用给系统使用的,SMCLK用给高速外设使用的,而ACLK主要用给低速外设使用。
2.msp430
的振荡器:LFXT1,XT2,DCO
2.1LFXT1
:可接高速和低速晶振,在低速模式下,它可以外接32k的晶振而不需要负载电容,在单片机内部已经集成了几个电容供选择。同时,通过寄存器进行配置,它还可以接内部的VLOCLK,这个晶振是一个12k的低速晶振。高速模式下它可以接0.4~16M的晶振。通常将LFXT1配置成一个32k的振荡源,为ACLK提供低速的时钟信号。
2.2XT2
:高速振荡器,它可以接一个0.4~16M的晶振,它相当于高速模式下的LFXT1。通常将它配置成一个高速的振荡源,为MCLKSMCLK提供高速时钟信号。
3.DCO
:内部数字控制振荡器,它的频率可以通过DCOCLK进行配置。在系统PUC之后,DCOx=7,MODx=3.
在系统PUC之后,SMCLKMCLK都以DCO作为时钟源,震荡频率在1.1M左右,ACLKLFXT1作为时钟源,工作在LF模式下内部6pF的负载电容。
时钟模块初始化程序:
#include"msp430x26x.h"
main()
{
  WDTCTL=WDTPW+WDTHOLD;  //
关看门狗
  BCSCTL1&=~XT2OFF;           //
XT2晶振
  BCSCTL3+=XT2S_2;             //
XT2范围设定为3~16M                
  Do        
  {
    for(int i=0xff;i>0;i--);            //
延时
    IFG1&=~OFIFG;               //
清除标志位
  }
  while((IFG1&OFIFG)!=0);          //
检查晶振是否起振
BCSCTL2=SELM_2+SELS;           //
XT2设定为MCLKSMCLK震荡源
…………………………………………………….

        
注意:a.最好将IFG1&=~OFIFG;放入do –while循环中,我调了好一阵程序,发现IFG1似乎置位之
                
后不能自动复位。
              b.
XT2出现错误的情况下将XT2设定为MCLK SMCLK的时钟源,单片机会自动的把时钟源更换
                
DCO振荡器。当时钟信号丢失50us时,振荡器失效。如果MCLK信号来自LFXT1或者XT2
                
那么MSP430自动把MCLK的信号切换为DCO,这样可以保证程序继续运行。MSP430不对低频
                
模式的LFXT1进行监测。
              b.BCSCTL2=SELM_2+SELS;
语句必须放在while之后,因为当XT2没有起振之前,XT2处于错误
                
阶段,因此在XT2没有起振之前将它设定为主时钟与子系统时钟后,单片机会自动的将DCO
                
设定为SMCLK MCLK的时钟源。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MSP430系统时钟寄存器详解
【MSP430时钟】MSP430 5438时钟系统介绍
MSP430的时钟问题
MSP430的时钟系统
MSP430F5529时钟详解
【MSP430趣谈】MSP430第八讲之时钟设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服