|
本帖最后由 gjxfree 于 2018-8-19 17:16 編輯
各位大佬求幫助,實(shí)驗(yàn)需要采集一個(gè)7khz的正弦波,我用的stc89c51,晶振12m,ad轉(zhuǎn)換頻率125khz
根據(jù)時(shí)序圖寫(xiě)的讀取ad的函數(shù),但是12m的晶振,一條指令就是1us,這樣算下來(lái)讀取一次怎么都需要個(gè)0.5ms以上,一秒鐘是怎么也到不了7khz的,請(qǐng)問(wèn)各位大佬現(xiàn)在該怎么處理。
uintRead_AD_Data(uchar cmd)
{
uint AD_Value;
CLK = 0;
CS = 0;
SPI_Write(cmd);
for(AD_Value=6; AD_Value>0; AD_Value--);
CLK = 1;
_nop_();
_nop_();
CLK = 0;
_nop_();
_nop_();
AD_Value=SPI_Read();
CS = 1;
return AD_Value;
}
void SPI_Write(uchar dat)
{
uchar i;
CLK = 0;
for(i=0; i<8; i++)
{
DIN = dat >> 7;
dat <<= 1;
CLK = 0;
CLK = 1;
}
}
uint SPI_Read(void)
{
uint i, dat=0;
CLK = 0;
for(i=0; i<12; i++) //????12λ????
{
dat <<= 1;
CLK = 1;
CLK = 0;
dat |= DOUT;
}
return dat;
}
|
|