리크 테스트 gui
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

89 lines
2.3 KiB

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include "dask.h"
#define PI 3.14159
U16 channel=0;
U32 out_count=4096;
F64 samp_rate = 50000;
U16 pattern1[4096];
U16 pattern2[4096];
U16 ao_buf[4096];
U16 ao_buf2[4096];
main()
{
I16 card, err, card_num,i,Id,j;
BOOLEAN halfReady, fStop;
U32 count=0, count1, startPos;
U16 viewidx;
printf("Please input a card number: ");
scanf(" %d", &card_num);
//getch();
if ((card=Register_Card (PCI_7300A_RevB, card_num)) <0 ) {
printf("Register_Card error=%d\n", card);
exit(1);
}
for (i=0;i<out_count;i++)
pattern1[i] = (U16)(sin((double)i/512*PI)*0x7fff)+0x8000;
for (i=0;i<out_count;i++) {
//if(i<2048)
pattern2[i] = ((i*16)%65536) & 0xffff;
//else
// pattern2[i] = (2048-((i-2047)%65536)) & 0xffff;
}
memcpy(ao_buf, pattern1, out_count*2);
memcpy(ao_buf2, pattern1, out_count*2);
//memcpy(ao_buf2, pattern2, out_count*2);
err=DO_7300B_Config (card, 16, TRIG_INT_PACER, P7300_WAIT_NO, P7300_TERM_ON, 0, 0x00040004);
if (err !=0) {
printf("DO_7300B_Config Error = %d, card=%d\n", err, card);
exit(1);
}
err = DO_ContMultiBufferSetup (card, ao_buf, out_count, &Id);
if (err!=0) {
printf("DO_ContMultiBufferSetup error=%d for the 1st buffer", err);
exit(1);
}
err = DO_ContMultiBufferSetup (card, ao_buf2, out_count, &Id);
if (err!=0) {
printf("DO_ContMultiBufferSetup error=%d for the 2nd buffer", err);
exit(1);
}
err = DO_ContMultiBufferStart (card, 0, samp_rate);
if (err!=0) {
printf("DO_ContMultiBufferStart error=%d", err);
exit(1);
}
j=0;
printf("\n\nPress any key to stop input operation.");
printf("\n\nData count : \n");
do {
do {
DO_AsyncMultiBufferNextReady(card, &halfReady, &viewidx);
} while (!halfReady);
if(halfReady) {
if(!(j%4))
memcpy(ao_buf, pattern2, out_count*2);
else if((j%4)==1)
memcpy(ao_buf2, pattern2, out_count*2);
else if((j%4)==2)
memcpy(ao_buf, pattern1, out_count*2);
else
memcpy(ao_buf2, pattern1, out_count*2);
count += (out_count);
printf("%d %d\r", viewidx, count);
j++;
}
} while(!kbhit());
DO_AsyncClear(card, &count1);
count += (count1);
Release_Card(card);
printf("\nPress ENTER to exit the program. "); getch();
}