|
最近在用60S2做以后測風(fēng)速的實(shí)驗(yàn),但是在定時計(jì)數(shù)上出現(xiàn)問題,只用T1的計(jì)數(shù)功能沒問題,但是風(fēng)速不能清零,要用T0定時一秒的話,就檢測不到風(fēng)速,有大佬知道原因嗎?源碼如下
void Timer1_init(void)
{
TMOD = 0X62;//1設(shè)定定時器1模式2,計(jì)數(shù)功能0110 定時器0模式2,定時功能 0010
TH1 = 0xfe;//設(shè)置定計(jì)數(shù)器初值 PS這里有兩種思路 1 一個脈沖溢出 進(jìn)T1的服務(wù)函數(shù)加一 ,或者直接計(jì)數(shù)在T0的服務(wù)函數(shù)里讀值
TL1 = 0xfe;
TH0 =(65536-50000)/256;//50ms中斷一次
TL0 =(65536-50000)%256;
ET0 = 1;
ET1 = 1;
TR0 = 1;
TR1 = 1; //啟動定時器
EA = 1;
}
/*---------------------T0中斷服務(wù)子函數(shù)------------------*/
/*
void Timer0_int(void) interrupt 1 using 2 //定時T0中斷服務(wù)程序
TR0=0;TR1=0;//先關(guān)閉定時器
// fs=TH1;
//fs=fs << 8;
// fs= TL1;
flag=1; //轉(zhuǎn)換結(jié)束
TH1=1;TL1=1; //清0重新計(jì)數(shù)
TR0=1;TR1=1; TF0=0;
}
}
/*---------------------T1中斷服務(wù)子函數(shù)------------------*/
/*
void Timer1_int(void) interrupt 3 using 1 //計(jì)數(shù)T1中斷服務(wù)程序
{
fs++;
//TF1=0;
}
如果只用T1的服務(wù)函數(shù)就可以準(zhǔn)確讀取FS的脈沖,但是要同時用T0的服務(wù)函數(shù) T0會增加 但是T1的FS就讀不出來
post_newreply
|
|