|
/*****************************************************
*函數(shù)名稱:void Timer_Init(void)
*函數(shù)功能:T2初始化
*入口參數(shù):void
*出口參數(shù):void
*****************************************************/
void Timer2_Init(void)
{
//demo使用,為清楚了解,分開寫,實(shí)際操作整個(gè)寄存器更節(jié)約rom
T2CON1 |= 0x01; //使能T2
T2CON &= ~0x02; //內(nèi)部時(shí)鐘
T2CON &= ~0x01;
T2CON1 &= ~0x40;
T2CON1 &= ~0x20; //000 方式0
T2MOD |= 0x80; //自動(dòng)重載
T2MOD &= 0x8F;
T2MOD |= 0x20; //FT2=Fsys/16
T2MOD &= ~0x08; //IO不翻轉(zhuǎn)
TR2 = 0;
//無論是讀或者寫 TL2/TH2(RCAPL2/RCAPH2)的值,必須先停止(TR2=0),否則 T2 將產(chǎn)生不可預(yù)知的情況。
//寫操作時(shí):必須先寫 TL2(RCAPL2),再寫TH2(RCAPH2),否則TL2(RCAPL2)的值不能立即反映到內(nèi)部counter上,
//讀操作時(shí):必須先讀 TL2(RCAPL2),再讀TH2(RCAPH2),否則將讀取到錯(cuò)誤的值
TL2 = (65536 - 2000) % 256;
TH2 = (65536 - 2000) / 256;
RCAPL2 = (65536 - 2000) % 256;
RCAPH2 = (65536 - 2000) / 256; //2ms
TR2 = 1;
IE1 |= 0x01; //使能中斷
}
|
|