?? msp430_init.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 + -