主题最新回顾(发布时间:2013-7-16 12:11:00) |
---|
-- 作者:x10(171.214.*.*)
-- 另外,上述代码让接口电路最简化:直接连接到精简ISA总线,不需要别的东西。 |
主题最新回顾(发布时间:2013-7-16 12:09:00) |
---|
-- 作者:x10(171.214.*.*)
-- MAX197的转换速度为100Ksps,所以稍微延时一点(10us)就可以了。在CE中,中断需要在驱动程序中实现,这样会让程序很复杂。我们的ETA108就是基于DMA/INT驱动的,主要是实现波形采集。对一般的低速数据采集,上述方法可满足需要。 |
主题最新回顾(发布时间:2013-7-16 11:05:00) |
---|
-- 作者:客人(125.71.*.*)
-- em9170+ETA197数据采集 您好: 关于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; } |