请教! 点击:1033 | 回复:1



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-05-30 15:24:00
楼主
我现在有一块ACL-8316卡,我用c语言编写驱动程序,可是我不知道采用软件进行A/D驱动时,应向那一个地址写状态字来驱动A/D转换(状态字是0还是1?)。同时采集的数据如何转换成模拟电压值(公式)。 恳请各位高手给与赐教!小地再此万分感激!



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-05-30 15:24:00
1楼
8316 A/D采样的例子,加delay(1)是因为I/O速度慢的缘故。参看说明书关于寄存器的描述一起看。 _ACL8316_AD(int ad_ch,int ad_gain) {int Gain,DRTY,ad_data; outportb(BASE+10,ad_ch); delay(1); outportb(BASE+8,0x00); delay(1); outportb(BASE+12,0x00); delay(1); inportb(BASE+12); switch(Gain) { case 1: ad_gain=0; break; case 2: ad_gain=1; break; case 4: ad_gain=2; break; case 8: ad_gain=3; break; } outportb(BASE+9,ad_gain); delay(1); do {DRTY=inportb(BASE+8)&0x80; delay(1);} while(DRTY==0); ad_data=inport(BASE+4); return ad_data; }

热门招聘
相关主题

官方公众号

智造工程师