MSP430定時器詳解
/*******************************************
函數(shù)名稱:InitClock
功 能:初始化時鐘函數(shù)
參 數(shù):無
返回值 :無
********************************************/
void InitClock()
{
unsigned int oscdly;
BCSCTL1 = ~XT2OFF; //------------清OSCOFF/XT2,使XT2振蕩器有效
do
{
IFG1 =~OFIFG; //------------清OFIFG
oscdly=255;
while(oscdly--); //------------延時等待
}
while(IFG1 OFIFG); //------------直到OFIFG=0為止
//-------------------------------------------------------------
DCOCTL |= DCO0 + DCO1 + DCO2; // Max DCO
BCSCTL1 |= RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
//這兩句設(shè)置DCOCTL和BCSCTL1,設(shè)置DCO的頻率
//一般來說,PUC復(fù)位之后,如果沒有特定設(shè)置系統(tǒng)時鐘MCLK,MCU將默
//認DCO振蕩器產(chǎn)生的頻率為系統(tǒng)時鐘,不過如果設(shè)置BCSCTL2來選定
//MCLK的時鐘源的話(如:BCSCTL2 |= SELM_2+SELS;)系統(tǒng)時鐘就是由
//XT2振蕩而來.
//-------------------------------------------------------------
BCSCTL2 |= SELM_2+SELS; //SMCLK and MCLK uses XT2
//這一句設(shè)置BCSCTL2,選定MCLK和SMCLK的時鐘源
//注意:ACLK只能來源于LFXT1.可以在BCSCTL1里設(shè)置ACLK的分頻。
//-------------------------------------------------------------
}
/*******************************************
函數(shù)名稱:Timer_A
功 能:定時器A中斷服務(wù)子函數(shù),當
參 數(shù):無
返回值 :無
********************************************/
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P3OUT ^= BIT4; // Toggle P3.4
}
[/td][/tr]
------------------------------
評論