⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msp430_init.c

📁 msp430初始化文件 提供主时钟 子时钟 辅助时钟的初始化
💻 C
字号:
//         MSP430x16x初始化模块
//********************************************
//特征说明:   CPU = msp430f169               *
//  CLOCK :   XT2 = 8M   XT1 = 32.768K       *
//********************************************

#include <msp430x16x.h>
#include "MSP430_Init.h"


//看门狗设定 0: 关闭 1:开启
void WatchDog(unsigned char Set_WatchDog)
{
  if(Set_WatchDog == 0)
    WDTCTL = WDTPW + WDTHOLD;
  else ;
}

//启动XT2振荡器
void XT2_Start(void)
{
  unsigned char i;  

    BCSCTL1 &= ~XT2OFF;//XT2有效
    do
    {
      IFG1 &= ~OFIFG; //清除振荡器失效标志
      for(i=0xff;i>0;i--);//稳定时间
    }
    while((IFG1 & OFIFG) != 0);//如果振荡器失效标志存在
}

//启动XT1高频振荡器,XT1接高频晶体时使用
void XT1HF_Start(void)
{
  unsigned char i;
  BCSCTL1 &= XTS;
  do
  {
    IFG1 &= ~OFIFG;
    for(i=0xff;i>0;i--);
  }
  while((IFG1 &OFIFG) != 0);
}


//主时钟设置
//**********************************************************
//入口参数: 
// mclk_select 默认选项为 DCOCLK
// (0/1)/2/3   DCOCLK/XT2CLK/LFXT1CLK   
// div_select   默认为 1分频
// 0/1/2/3    1分频/2分频/4分频/8分频
//*********************************************************
void Mclk_Init(unsigned char mclk_select,unsigned char div_select)
{
  BCSCTL2 |= (mclk_select<<6) + (div_select<<4);
}

//子时钟设置
//**********************************************************
//入口参数:
//smclk_select  默认选项为 DCOCLK
// 0/1  DCOCLK/XT2CLK  
//div_select  默认为 1分频
//0/1/2/3    1分频/2分频/4分频/8分频
//***********************************************************
void Smclk_Init(unsigned char smclk_select,unsigned char div_select)
{
  BCSCTL2 |= (smclk_select<<3) + (div_select<<1);
}

//辅助时钟设置
//***********************************************************
//辅助时钟默认启动
//入口参数:
//aclk_div   默认为 1分频
//0/1/2/3    1分频/2分频/4分频/8分频
//***********************************************************
void Aclk_Init(unsigned char aclk_div)
{
  BCSCTL1 |= (aclk_div<<4);
}



//***************************************
//常用 MSP430x16x 系统时钟配置
//
void CPU_Init(void)
{
  WatchDog(0);//关闭看门狗
  XT2_Start();//开启XT2振荡器
  Mclk_Init(2,0);//设置主时钟为 XT2(8M),且不分频
  
  Smclk_Init(1,0);//设置子时钟为 XT2(8M),且不分频
  //Aclk_Init(0);//设置辅助时钟不分频
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -