finite analog output

Hi all,

I tried to modify the comedilib/demo/ao_waveform.c program to output a
finite number of data points** (see attachment) but I am having difficulty.

My program won't output small numbers of data points:

./ao_waveform -F 10000 -N 10000 10

& for large numbers of data points (-N 30000) the output is being truncated.

/var/log/messages has lots of these error messages:

kernel: ni_mio_common: DMA underrun

I believe the problem occurs because some sort of FIFO-half-empty state
occurs & the driver resets the card thinking an error state has occured.
The desired behaviour would be to continue outputting whatever is left
in the FIFO & _then_ resetting the card. I'm not really sure though.

I am using:
Fedora Core 4 (2.6.11-1.1369 kernel)
comedi-0.7.70
comedilib-0.7.22
NI6711 AO card.

Any pointers/info to get this working would be muchly appreciated.

SCoTT. :)
** My actual goal is to have a program that can output an integer number
   of _waveforms_. Outputting a finite number of _data points_ is an interim
   step toward this.

Received on 2005-08-15Z02:25:31