?? driver430.c
字號:
/******************************************************************************
* files name DRIVER430.c
*說明:msp430單片機內部模塊驅動c文件
******************************************************************************/
#include <msp430x16x.h>
/*****************************************************************************
* 系統時鐘初始化模塊
******************************************************************************/
/***********************************************************************
** 函數名稱: XT2_ON
** 功能描述: 外部時鐘XT2振蕩,并賦給MCLK
** 輸 入: unsigned char DIVM MCLK 主時鐘分頻
** unsigned char DIVA ACLK 輔助時鐘分頻
** unsigned char DIVS SMCLK 外設主時鐘分頻
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
***********************************************************************/
void XT2_ON(unsigned char DIVM,unsigned char DIVA,unsigned char DIVS)
{
unsigned char i;
BCSCTL1 &= ~XT2OFF; //XT2振蕩器開啟
do
{
IFG1 &= ~OFIFG;
for (i = 0X20;i > 0;i--);
}
while((IFG1 & OFIFG) == OFIFG);//waiting for the Oscillator is notfault
//BCSCTL1 |= XTS;
BCSCTL1 |= DIVA << 4;
BCSCTL2 |= SELM_2; //MCLK 選擇XT2
BCSCTL2 |= DIVM << 4;
BCSCTL2 |= DIVS << 1;
BCSCTL2 |= SELS; //SMCLK 選擇XT2
}
/***********************************************************************
** 函數名稱: DCO_ON
** 功能描述: 內部RC振蕩,并賦給MCLK
** 輸 入: unsigned char RSELX RC RSEL選擇
** unsigned char DCOX DCO 輸出選擇
** unsigned char DIVM MCLK 主時鐘分頻
** unsigned char DIVA ACLK 輔助時鐘分頻
** unsigned char DIVS SMCLK 外設主時鐘分頻
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
***********************************************************************/
void DCO_ON(unsigned char RSELX,unsigned char DCOX,unsigned char DIVM,
unsigned char DIVA,unsigned char DIVS)
{
unsigned char i;
BCSCTL1 |= XT2OFF; //XT2振蕩器關閉
BCSCTL1 |= RSELX; //選擇DCO 頻率
DCOCTL |= DCOX << 5;
do
{
IFG1 &= ~OFIFG;
for (i = 0x20;i > 0;i--);
}
while((IFG1 & OFIFG) == OFIFG);
BCSCTL1 |= DIVA << 4;
BCSCTL2 |= SELM_0; //MCLK 選擇DCO
BCSCTL2 |= DIVM << 4;
BCSCTL2 |= DIVS << 1;
BCSCTL2 &= ~SELS; //SMCLK 選擇DCO
}
/***********************************************************************
* USART串口通信模塊
***********************************************************************/
/***********************************************************************
** 函數名稱: USART_Init
** 功能描述: USART 模塊初始化
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
***********************************************************************/
void USART_Init(void)
{
P3SEL |= 0xC0;
P3DIR |= 0x40;
UTCTL1 |= SSEL1;
UCTL1 = CHAR;
UBR01 = 0x41;
UBR11 = 0x03;
UMCTL1 = 0x00;
ME2 |= UTXE1 + URXE1;
UCTL1 &= ~SWRST;
IE2 |= URXIE1;
}
/***********************************************************************
* AD/DA模塊
***********************************************************************/
/***********************************************************************
** 函數名稱: AD12_Init
** 功能描述: AD采樣模塊初始化
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
***********************************************************************/
void AD12_Init(void)
{
unsigned int i;
P6SEL |= BIT5; // enable channel 5
ADC12CTL0 = ADC12ON + SHT0_2 + REFON + REF2_5V; // Turn on and set up ADC12
ADC12CTL1 = SHP; // Use sampling timer
ADC12MCTL0 = SREF_1+INCH_5; // Vr+=Vref+
for ( i=0; i<0x3600; i++) // Delay for reference start-up
{
}
ADC12CTL0 |= ENC; // Enable conversions
}
/***********************************************************************
** 函數名稱: DA_Init
** 功能描述: DA模塊初始化
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無.
** 調用模塊: 無
***********************************************************************/
void DA_Init(void)
{
ADC12CTL0 = REFON + REF2_5V;
DAC12_0CTL = DAC12IR + DAC12AMP_7 + DAC12ENC;
DAC12_1CTL = DAC12IR + DAC12AMP_7 + DAC12ENC;
DAC12_0DAT = 0x0000;
DAC12_1DAT = 0x0000;
}
/***********************************************************************
** 函數名稱: AD_one
** 功能描述: AD采樣一次
** 輸 入: 無
** 輸 出: unsigned int AD采樣結果
** 全局變量: 無
** 調用模塊: 無
***********************************************************************/
unsigned int AD_one(void)
{
ADC12CTL0 |= ADC12SC;
while((ADC12IFG&BIT0)==0);
return(ADC12MEM0);
}
/**********************************************************************
* TIMERA模塊
***********************************************************************/
/***********************************************************************
** 函數名稱: TimerA_Init
** 功能描述: TimerA初始化
** 輸 入: unsigned char mode TimerA 工作模式
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
***********************************************************************/
void TimerA_Init(unsigned char mode)
{
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -