Fix 671x ao munging (again). This time, with feeling. (Or, correct
authorDavid Schleef <ds@schleef.org>
Mon, 30 Sep 2002 23:48:51 +0000 (23:48 +0000)
committerDavid Schleef <ds@schleef.org>
Mon, 30 Sep 2002 23:48:51 +0000 (23:48 +0000)
unipolar/bipolar behavior)

comedi/drivers/ni_mio_common.c

index 664470d957b90b9abf6a70e0c77b1f6dad91cb49..a97c63cd60402c25825738d0f141a7144f90dafd 100644 (file)
@@ -1828,16 +1828,14 @@ static int ni_ao_insn_write_671x(comedi_device *dev,comedi_subdevice *s,
        comedi_insn *insn,lsampl_t *data)
 {
        unsigned int chan = CR_CHAN(insn->chanspec);
-       lsampl_t d;
+       unsigned int invert;
 
-       ni_ao_config_chanlist(dev,s,&insn->chanspec,1);
+       invert = ni_ao_config_chanlist(dev,s,&insn->chanspec,1);
 
-       d = data[insn->n-1];
-       devpriv->ao[chan] = d;
-       d -= 1 << (boardtype.aobits - 1);
-       ao_win_out(d,DACx_Direct_Data_671x(chan));
+       devpriv->ao[chan] = data[0];
+       ao_win_out(data[0] ^ invert, DACx_Direct_Data_671x(chan));
 
-       return insn->n;
+       return 1;
 }
 
 static int ni_ao_inttrig(comedi_device *dev,comedi_subdevice *s,