主題:em9170+ETA197數(shù)據(jù)采集 共有42337人關(guān)注過本帖 |
---|
客人 |
1樓 |
em9170+ETA197數(shù)據(jù)采集 Post By:2013-7-16 11:05:00 [只看該作者]
您好:
關(guān)于ETA197的AD轉(zhuǎn)換程序,我想問一下,經(jīng)過ISA_WRITE之后,你們是通過delay延時(shí)函數(shù)等待轉(zhuǎn)換結(jié)束,再用ISA_READ讀取結(jié)果, 這樣子的話會(huì)不會(huì)不夠精確或者說不確定是否真的轉(zhuǎn)換結(jié)束,為什么不用MAX197的INT中斷來進(jìn)行判斷是否轉(zhuǎn)換結(jié)束呢?以下是你們的示例代碼: int ClassETA197::GetADData(int ChIdx, int RangeIdx) { unsigned char abyte; unsigned int ui1, ui2; if( ChIdx>7 ) return -1; if( RangeIdx>3 ) return -1; abyte = NORMAL|ChIdx|RangeMode[RangeIdx]; //ISA_WriteUchar( nSeg, 0, abyte ); ISA_Write( hETA197 , 1 , 0 , abyte ); // wait to make sure AD_EOC goto low DelayInuSec(300); //延時(shí) //ISA_ReadUchar( nSeg, 0, &abyte); //ISA_Read( hETA197 , ISA_CS1 , 0 , &abyte ); //ISA_ReadUchar( nSeg, 0, &abyte); ISA_Read( hETA197 , 1 , 0 , &abyte ); ui1 = (unsigned int)abyte; //ISA_ReadUchar( nSeg, 1, &abyte); ISA_Read( hETA197 , 1 , 1 , &abyte ); ui2 = (unsigned int)abyte; ui1 = (ui2<<8|ui1)&0x0fff; return ui1; } |
|
單帖管理 | 引用 | 回復(fù) |
x10 |
2樓 |
Post By:2013-7-16 12:09:00 [只看該作者]
MAX197的轉(zhuǎn)換速度為100Ksps,所以稍微延時(shí)一點(diǎn)(10us)就可以了。在CE中,中斷需要在驅(qū)動(dòng)程序中實(shí)現(xiàn),這樣會(huì)讓程序很復(fù)雜。我們的ETA108就是基于DMA/INT驅(qū)動(dòng)的,主要是實(shí)現(xiàn)波形采集。對(duì)一般的低速數(shù)據(jù)采集,上述方法可滿足需要。
|
|
單帖管理 | 引用 | 回復(fù) |
x10 |
3樓 |
Post By:2013-7-16 12:11:00 [只看該作者]
另外,上述代碼讓接口電路最簡化:直接連接到精簡ISA總線,不需要?jiǎng)e的東西。
|
|
單帖管理 | 引用 | 回復(fù) |