#include #include #include #include #include #include #include #include #include "wai16.h" #define ZERO 204 int Buffer[2000]; main() { int key,c1,c2,t; FILE *stream; char c,buf[80]; int DesireCount=2000; /* The count which We desire to transfer */ int NowCount; /* The count which is transfering now */ int ErrorCode; int i,j,x1,x2,y1,y2,io_base,irq_no,dma_no; float volt; printf("\nio base (in hex format, 220) = "); scanf("%x",&io_base); printf("IRQ number (in int format, 15) = "); scanf("%d",&irq_no); printf("DMA number (in int format, 1/3) = "); scanf("%d",&dma_no); printf("(100K --> C1=4) --> C1= "); scanf("%d",&c1); printf("(100K --> C2=5) --> C2= "); scanf("%d",&c2); WAI16_Initialize(0,io_base,dma_no,irq_no); WAI16_AD_SetChGainMode(0,WAI16_BI_1,DMA_MODE); init(); for(;;) { cleardevice(); sprintf(buf,"C1=%d C2=%d --> Sampling Rate=%5.1fK",c1,c2,2000.0/(float)(c1*c2)); outtextxy(5,5,buf); sprintf(buf,"Press Any Key Twice To Stop"); outtextxy(5,5+10,buf); if( WAI16_AD_DMA_Start(Buffer,DesireCount,c1,c2)!=0 ) { putch(0x07); printf("WAI16_AD_DMA_Start() error !!!\n"); exit(1); } while(WAI16_AD_DMA_Status()) { if(kbhit() && getch()==27) break; }; WAI16_AD_DMA_Stop( ); /* this program is original designed for A822PGL/PGH */ /* transfer from A826_data_format to A822_data_format */ for (i=0; i<127; i++) { if ((Buffer[i]&0x8000)==0) t=Buffer[i]+0x8000; else t=Buffer[i]&0x7fff; Buffer[i]=t >> 4; } x1=0; j=Buffer[0]&0x0fff; y1=j>>5; y1+=ZERO; for(i=1; i<127; i++) { j=Buffer[i]&0x0fff; j=j>>5; j+=ZERO; x2=i*5; y2=j; line(x1,y1,x2,y2); x1=x2; y1=y2; } for(i=0; i<127; i++) { j=Buffer[i]&0x0fff; j=j>>5; j+=ZERO; putpixel(i*5,j,RED); putpixel(i*5,j+1,RED); putpixel(i*5+1,j,RED); putpixel(i*5+1,j+1,RED); } j=ZERO+64; for (i=0; i<639; i++) putpixel(i,j,GREEN); for (i=0; i<639; i++) putpixel(i,j-65,GREEN); for (i=0; i<639; i++) putpixel(i,j+65,GREEN); for (j=ZERO-65; j [%03xH]=%+5.3f Volt",i,Buffer[i],volt); outtextxy(5,5+10*(i+3),buf); } delay(1000); if (kbhit()!=0) {getch(); goto ret_label;} } ret_label: getch(); cleardevice(); closegraph(); } /* -------------------------------------------------------------------- */ init() { int driver,mode,char_size; driver=DETECT; mode=EGAHI; initgraph(&driver,&mode,""); setactivepage(0); setvisualpage(0); setcolor(15); setbkcolor(0); settextstyle(SMALL_FONT,HORIZ_DIR,6); }