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