回复帖子:(x10(171.214.*.*))另外,上述代码让接口电路...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间: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;
}