unsigned short gpct_command1;
unsigned short gpct_input_select0;
unsigned short gpct_input_select1;
+
+ int ai_chanlistptr;
+ int ai_chanlist[512];
}ni_private;
#define devpriv ((ni_private *)dev->private)
sampl_t *data,int n)
{
int i;
+ sampl_t d;
+ int j;
+ int range;
+ j=devpriv->ai_chanlistptr;
for(i=0;i<n;i++){
- data[i]=ni_readw(ADC_FIFO_Data_Register);
+ d=ni_readw(ADC_FIFO_Data_Register);
+ range=CR_RANGE(devpriv->ai_chanlist[j]);
+ if(range>=8)d^=0x800;
+ d&=0xfff;
+ data[i]=d;
+ j++;
+ if(j>=s->cur_trig.n_chan)j=0;
}
+ devpriv->ai_chanlistptr=j;
}
/* fix the external/internal range differences */
range=ni_gainlkup[boardtype.gainlkup][range];
- list[i]=CR_PACK(chan,range,aref);
+ devpriv->ai_chanlist[i]=CR_PACK(chan,range,aref);
hi=ni_modebits1[aref]|(chan&ni_modebits2[aref]);
ni_writew(hi,Configuration_Memory_High);