主題:em9170+ETA197數據采集 共有42319人關注過本帖 |
---|
客人 |
1樓 |
em9170+ETA197數據采集 Post By:2013-7-16 11:05:00 [只看該作者]
您好:
關于ETA197的AD轉換程序,我想問一下,經過ISA_WRITE之后,你們是通過delay延時函數等待轉換結束,再用ISA_READ讀取結果, 這樣子的話會不會不夠精確或者說不確定是否真的轉換結束,為什么不用MAX197的INT中斷來進行判斷是否轉換結束呢?以下是你們的示例代碼: 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); //延時 //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; } |
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2013-7-16 12:09:00 [只看該作者]
MAX197的轉換速度為100Ksps,所以稍微延時一點(10us)就可以了。在CE中,中斷需要在驅動程序中實現,這樣會讓程序很復雜。我們的ETA108就是基于DMA/INT驅動的,主要是實現波形采集。對一般的低速數據采集,上述方法可滿足需要。
|
|
單帖管理 | 引用 | 回復 |
x10 |
3樓 |
Post By:2013-7-16 12:11:00 [只看該作者]
另外,上述代碼讓接口電路最簡化:直接連接到精簡ISA總線,不需要別的東西。
|
|
單帖管理 | 引用 | 回復 |