发表于:2006-04-17 17:49:00
楼主
我用的K-811数据采集卡,但是加入8253控制采集频率后,就不能采集到数据,只是一个固定的数:(.大家帮我看看哪里出问题了?多谢了
#include "stdio"
#include "dos.h"
#include "conio.h"
main()
{
int ch;
int dl,dh,j,base;
clrscr();
base=0x300; /*基卡地址*/
dl=inportb(base+1); /*空读低8位,清除转换标志及中断标志*/
printf("input channle number:");
scanf("%d",&ch);
outportb(base,ch); /*送通道号*/
outportb(base+0xf,0xb1); /*设定8253定时器控制字,选择计数器3,方式0*/
outportb(base+0xe,0x0f/0x99); /*送计数初值 9999*/
outportb(base+0xe,0x27/0x99);
for(j=0;j<1000;j++) /*控制采样次数*/
{
do{
;
}while(inportb(base)<=128); /*查询AD转换状态*/
outportb(base+0xe,0x0f/0x99); /*再次启动8253计数*/
outportb(base+0xe,0x27/0x99);
dh=inportb(base+0); /*读数据*/
dl=inportb(base+1);
outportb(base+4,dl); /*数据送入D/A通道,进行DA转换*/
outportb(base+5,dh);
inportb(base+4); /*启动D/A转换*/
}
}