这段代码加注释 int adc_data; int mid_data[24]; FILE fp; fp = fopen(filename,"w"); int con;for(con=0;con<10;con++) { Create_AWG_Data(con); vec.Run(0,18); while(vec.Running()); DWORD ern = vec.GetResult(); if(ern) { if(fp!=NULL) { vec.GetFailData(ern,pea,buf,outpin,SIZEOF_ARRAY(outpin)); n=(int)ern/12; for(i=0;i<n;i++) { j=i*24; for(k=0;k<24;k++) { mid_data[k]=(int)buf[j+k]; } adc_data=(mid_data[0]<<11) | (mid_data[2]<<10) | (mid_data[4]<<9) | (mid_data[6]<<8) | (mid_data[8]<<7) | (mid_data[10]<<6) | (mid_data[12]<<5) | (mid_data[14]<<4) | (mid_data[16]<<3) | (mid_data[18]<<2) | (mid_data[20]<<1)|mid_data[22]; data_num[adc_data]++; fprintf(fp,"%d: %d\n",i+con*4120,adc_data); } } } }for(i=0;i<4096;i++) { if (data_num[i]) fprintf(fp,"%d: %d\n",i,data_num[i]); }
时间: 2023-07-15 18:13:53 浏览: 70
//定义变量
int adc_data; //ADC采集数据
int mid_data[24]; //中间数据数组
FILE fp; //文件指针
fp = fopen(filename,"w"); //以写的方式打开文件
//循环10次,创建AWG数据、运行并获取结果
int con;
for(con=0;con<10;con++) {
Create_AWG_Data(con); //创建AWG数据
vec.Run(0,18); //运行AWG
while(vec.Running()); //等待运行完成
DWORD ern = vec.GetResult(); //获取运行结果
//如果运行失败,则获取失败数据并写入文件
if(ern) {
if(fp!=NULL) { //如果文件指针不为空
vec.GetFailData(ern,pea,buf,outpin,SIZEOF_ARRAY(outpin)); //获取失败数据
n=(int)ern/12;
for(i=0;i<n;i++) {
j=i*24;
for(k=0;k<24;k++) {
mid_data[k]=(int)buf[j+k]; //获取中间数据
}
//将中间数据转换为ADC采集数据,并统计每种数据出现的次数
adc_data=(mid_data[0]<<11) | (mid_data[2]<<10) | (mid_data[4]<<9) | (mid_data[6]<<8) | (mid_data[8]<<7) | (mid_data[10]<<6) | (mid_data[12]<<5) | (mid_data[14]<<4) | (mid_data[16]<<3) | (mid_data[18]<<2) | (mid_data[20]<<1)|mid_data[22];
data_num[adc_data]++;
//将采集数据和对应的序号写入文件
fprintf(fp,"%d: %d\n",i+con*4120,adc_data);
}
}
}
}
//统计每种数据出现的次数,并写入文件
for(i=0;i<4096;i++) {
if (data_num[i]) fprintf(fp,"%d: %d\n",i,data_num[i]);
}