- From: Bob Estes <estes_at_transmeta.com>
- Date: Thu, 08 Jan 2004 05:41:08 -0800 (PST)
> Boy you'll all be irritated checking mail :^) SOrta answered my own
> question. This code snippet does work...
>
> > 568 for (i=0; i<ret/sizeof(sampl_t); i++) {
> > 569 int sample = buf[i];
> > 570 if (sample > 0xf000) sample -= 0xf000;
> > 571 maxdata =
> > comedi_get_maxdata(cdevice,subdevice,daqcol);
> > 572 volts =
> > comedi_to_phys(sample,comedi_get_range(cdevice,subdevice,
> > daqcol,range),maxdata);
>
> The question remains, why is the 0xf000 thing required and why does the
> select/read method only give me data in "chunks"? The "data in chunks"
> is problem since I want to do some live display (graphical) of the data
> coming in. Seems to be buffering up scans 128 at a time. 16 channels
> per scan by the way.
I'm using a continuous sampling program derived from mmap.c and have seen
similar behavior (I have an NI 6031E card). In my case it looks like DMA
from the card occurs in about 4 KB chunks. It looks like you're seeing the
same thing - 128*16*2 = 4K.
I'd also like to find a way to work around this, but haven't had time to
investigate. For a low sampling rate, you can use the instruction
interface to gather one scan at a time. Maybe we'll have to implement a
dual mode interface using the insn interface at low sampling rates.
Let me know if you learn anything interesting,
Thanks,
-B
> Tim Holt wrote:
>
> > Ah - and this is a NI 6071E, comedi 0.7.66, and clib 0.7.20 on redhat 9
> >
> > Tim Holt wrote:
> >
> >> Oh - Question 2. WHen I run the cmd.c example, my data comes out in
> >> "bunches" - like it's buffering up. It seems to buffer up about 3
> >> seconds of data at a time. If i try to set cmd->flags =
> >> TRIG_WAKE_EOS it just seems to lock up and nothing happens. In fact
> >> I totally lose my ssh terminal connection to my host I'm programming on.
> >> Tim Holt wrote:
> >>
> >>> I've been reworking some code, and started with the demo "cmd.c"
> >>> code as a base. First, I extended it to grab 16 channels of data,
> >>> as I happed to have a signal generator feeding a sine wave pattern
> >>> to my 15th channel. Now here's the odd behaviour: the count
> >>> numbers, when they drop to around 2000 or so, seem to wrap and
> >>> suddenly jump up to 63,000 or so. Here's a paste of the results...
> >>>
> >>>> 63430 2291 2900 2657 2070 2070 2070 2071 2070 2070 2069 2070 2071
> >>>> 2069 62789 2071
> >>>> 63429 2373 2564 2632 2070 2069 2070 2071 2070 2070 2070 2070 2071
> >>>> 2070 62883 2072
> >>>> 63429 2421 2391 2621 2070 2070 2070 2071 2070 2069 2070 2070 2070
> >>>> 2070 62981 2072
> >>>> 63429 2461 2357 2611 2070 2069 2070 2071 2070 2070 2070 2070 2071
> >>>> 2070 63085 2071
> >>>> 63430 2581 2362 2586 2070 2070 2070 2070 2070 2069 2070 2070 2071
> >>>> 2070 63193 2072
> >>>> 63430 2660 2368 2574 2070 2069 2070 2071 2070 2069 2069 2070 2071
> >>>> 2070 63303 2072
> >>>> 63430 2678 2373 2575 2070 2069 2070 2070 2070 2070 2070 2071 2071
> >>>> 2070 63415 2072
> >>>> 63429 2668 2395 2590 2070 2069 2070 2071 2070 2069 2070 2070 2071
> >>>> 2070 2087 2072
> >>>> 63429 2659 2409 2600 2070 2069 2070 2071 2070 2070 2070 2070 2070
> >>>> 2070 2198 2072
> >>>> 63430 2655 2424 2600 2070 2070 2070 2070 2070 2070 2069 2070 2070
> >>>> 2069 2309 2072
> >>>> 63429 2653 2496 2589 2070 2069 2070 2071 2071 2070 2070 2070 2070
> >>>> 2069 2416 2072
> >>>> 63430 2651 2554 2581 2070 2070 2070 2071 2070 2069 2070 2070 2070
> >>>> 2069 2521 2072
> >>>> 63430 2648 2570 2578 2070 2070 2070 2071 2070 2069 2070 2070 2070
> >>>> 2070 2620 2072
> >>>> 63429 2575 2580 2573 2070 2070 2070 2070 2071 2070 2069 2070 2071
> >>>> 2069 2713 2072
> >>>> 63429 2474 2590 2567 2070 2070 2070 2071 2070 2069 2070 2070 2070
> >>>> 2069 2800 2072
> >>>> 63429 2431 2595 2565 2070 2070 2070 2071 2070 2070 2070 2070 2071
> >>>> 2070 2879 2071
> >>>> 63429 2331 2660 2561 2070 2070 2070 2071 2070 2070 2070 2071 2070
> >>>> 2070 2950 2072
> >>>> 63429 2163 2755 2556 2070 2070 2070 2070 2070 2070 2070 2071 2070
> >>>> 2069 3011 2072
> >>>> 63429 2088 2792 2554 2070 2070 2070 2070 2071 2070 2070 2070 2071
> >>>> 2070 3061 2072
> >>>> 63429 2210 2718 2564 2070 2070 2070 2071 2071 2070 2070 2070 2071
> >>>> 2070 3098 2072
> >>>> 63429 2519 2567 2583 2070 2069 2070 2071 2071 2070 2070 2070 2071
> >>>> 2070 3120 2071
> >>>> 63429 2675 2498 2590 2070 2069 2070 2071 2071 2069 2070 2070 2071
> >>>> 2070 3132 2072
> >>>> 63430 2718 2472 2577 2070 2069 2070 2071 2071 2070 2070 2071 2071
> >>>> 2069 3136 2071
> >>>> 63429 2753 2439 2546 2070 2069 2070 2070 2071 2070 2069 2070 2070
> >>>> 2070 3134 2072
> >>>> 63429 2772 2422 2532 2070 2069 2070 2071 2070 2069 2070 2070 2071
> >>>> 2070 3125 2072
> >>>> 63430 2773 2443 2547 2069 2070 2070 2070 2070 2070 2070 2070 2071
> >>>> 2070 3106 2072
> >>>> 63429 2757 2521 2594 2070 2069 2070 2071 2070 2069 2070 2070 2071
> >>>> 2070 3074 2071
> >>>> 63429 2746 2568 2620 2070 2069 2070 2070 2071 2069 2070 2071 2071
> >>>> 2070 3027 2072
> >>>> 63429 2741 2537 2613 2070 2069 2070 2071 2070 2069 2070 2071 2071
> >>>> 2070 2969 2072
> >>>> 63429 2735 2347 2567 2070 2070 2071 2070 2070 2070 2070 2070 2070
> >>>> 2069 2900 2072
> >>>> 63430 2730 2217 2539 2070 2069 2070 2070 2071 2069 2070 2070 2071
> >>>> 2069 2822 2072
> >>>> 63430 2725 2214 2537 2070 2070 2070 2071 2070 2069 2070 2070 2070
> >>>> 2070 2737 2072
> >>>> 63430 2687 2422 2562 2070 2070 2070 2071 2070 2070 2070 2070 2070
> >>>> 2069 2645 2072
> >>>> 63429 2651 2591 2581 2070 2070 2070 2071 2070 2070 2070 2070 2071
> >>>> 2070 2545 2072
> >>>> 63429 2644 2632 2583 2070 2070 2070 2070 2070 2070 2070 2070 2071
> >>>> 2069 2441 2071
> >>>> 63430 2697 2568 2574 2070 2070 2070 2071 2071 2069 2070 2070 2071
> >>>> 2070 2333 2071
> >>>> 63429 2757 2501 2567 2070 2069 2070 2071 2071 2070 2070 2070 2070
> >>>> 2070 2223 2071
> >>>> 63429 2775 2479 2564 2070 2070 2070 2071 2070 2069 2070 2070 2071
> >>>> 2070 2111 2072
> >>>> 63429 2690 2472 2568 2070 2070 2069 2070 2071 2069 2070 2070 2070
> >>>> 2070 63437 2072
> >>>> 63430 2569 2467 2571 2070 2070 2070 2071 2070 2070 2070 2070 2071
> >>>> 2070 63324 2072
> >>>> 63429 2524 2467 2572 2070 2070 2070 2071 2070 2069 2070 2070 2071
> >>>> 2070 63213 2072
> >>>> 63429 2608 2495 2568 2070 2069 2070 2071 2070 2069 2070 2070 2071
> >>>> 2069 63104 2071
> >>>> 63429 2765 2536 2562 2070 2070 2070 2071 2070 2069 2069 2071 2070
> >>>> 2070 62999 2071
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> You can see how the 2nd from last column suddenly wraps to a high
> >>> number when it drops below 2000 or so.
> >>>
> >>> OK - now clue #2. I can also run the "tut2.c" example and get nice
> >>> clean voltages out, which do not do this. Here's some sample
> >>> output (of just channel 15)...
> >>>
> >>>> 000967 -5.27717V
> >>>> 001032 -4.95971V
> >>>> 001111 -4.57387V
> >>>> 001205 -4.11477V
> >>>> 001309 -3.60684V
> >>>> 001423 -3.05006V
> >>>> 001553 -2.41514V
> >>>> 001690 -1.74603V
> >>>> 001812 -1.15018V
> >>>> 001953 -0.461538V
> >>>> 002091 0.212454V
> >>>> 002231 0.896215V
> >>>> 002367 1.56044V
> >>>> 002500 2.21001V
> >>>> 002625 2.82051V
> >>>> 002740 3.38217V
> >>>> 002843 3.88523V
> >>>> 002936 4.33944V
> >>>> 003014 4.72039V
> >>>> 003073 5.00855V
> >>>> 003111 5.19414V
> >>>> 003131 5.29182V
> >>>> 003136 5.31624V
> >>>> 003132 5.2967V
> >>>> 003116 5.21856V
> >>>> 003081 5.04762V
> >>>> 003025 4.77411V
> >>>> 002949 4.40293V
> >>>> 002858 3.95849V
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Note how when the sample drops below 2000 (or so) that's where we go
> >>> to negative voltage.
> >>>
> >>> What is going on here!?! It's like a sign bit's not right!
> >>>
> >>> OK now here's the REAL question. I need to be using the
> >>> comedi_command() style of DAQ to set up my card to do the timing,
> >>> etc. But with comdei_command, it looks like I lose access to all
> >>> these nice functions like comedi_get_maxdata(), comedi_get_range()
> >>> and most importantly comedi_to_phys(). How can I use the
> >>> comedi_command() type of DAQ, use read() to get my data, and still
> >>> use comedi_to_phys()?
> >>> Tim Holt
> >>> NACSE
> >>>
> >>>
> >>> _______________________________________________
> >>> comedi mailing list
> >>> comedi_at_comedi.org
> >>> https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi
> >>
> >>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> comedi mailing list
> >> comedi_at_comedi.org
> >> https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi
> >
> >
> >
> >
> >
> > _______________________________________________
> > comedi mailing list
> > comedi_at_comedi.org
> > https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi
>
>
>
>
> _______________________________________________
> comedi mailing list
> comedi_at_comedi.org
> https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi
Received on 2004-01-08Z13:41:08