新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機中時延函數(shù)易常范的錯誤

單片機中時延函數(shù)易常范的錯誤

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
有時候需要長時間的延時時,可以用循環(huán)也可以傳一個大點的參數(shù)。但是在傳大點的參數(shù)時一定要看清楚參數(shù)的類型及此類型所能表示的值的范圍。
如我所編AD轉(zhuǎn)換程序中,在轉(zhuǎn)換時間要長達30ms時才能有有效的數(shù)據(jù)輸出。如果時間過短,則不會起到即時的效果。unsigned char 最大值為255再大就要用循環(huán)了。
下面是原碼:
#include
#include
sbit wr = P3^6;
sbit rd = P3^7;
sbit dula = P2^6;
sbit wela = P2^7;
unsigned char j,k,aa;
void delay(unsigned char i) //最大值255
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{
unsigned char a;
while(1)
{
wela = 1; //選通P0的74hc573
P0 = 0; //選通ADCS
wr = 0; //起動adc0804,寫入模擬信號
_nop_();
wr = 1;
delay(10);
// for(a = 20;a>0;a--)
delay(255); //轉(zhuǎn)換等待
rd = 0; //AD讀使能
}
}
【注釋】此代碼在TX-1C中通過


關(guān)鍵詞: 單片機時延函

評論


技術(shù)專區(qū)

關(guān)閉