Re: [PARPORT] instruction execution time problem

From: Blaise Gassend (blaise@gassend.com)
Date: Sun Dec 22 2002 - 04:00:28 EST

  • Next message: Michael Reinelt: "Re: [PARPORT] instruction execution time problem"

    Hi,

    One problem that you may be having is that usleep really isn't designed
    for precise delays. It will return after at least the time you have
    requested (though signals might make it return sooner), but if the
    kernel has decided to schedule another task, it might return much later.
    I expect that for you, it often returns very fast, and sometimes takes
    much longer to return, but this is just a supposition.

    In any case, because your code can get preempted by the kernel to let
    other tasks run, you will probably suffer from a lot of jitter.

    I don't know what you want to do exactly with this ADC so this is
    probably no good for you. It seems to me that if you want to make your
    code work fast and with little jitter, you should probably block
    interrupts (not for too long or you might have strange things happen)
    and do the delays by hand. One delay trich that often works is to read
    from the parallel port. This takes approx 1 microsecond. So to delay
    3us, read 3 times (though you already have some parallel port accesses
    in your loop that count towards those 3 times).

    Just remember, everything I said above is really hacky. If you want
    clean portable code, you shouldn't do this; in fact you should use
    proper hardware that has its own clock for setting the sampling rate,
    and some buffering for when your program isn't running.

    Blaise Gassend

    > hi all,
    >
    > I connected one ADC to the parallel port , and i am
    > using parport for getting the data from the ADC
    >
    > I have written a program, which is working very
    > finely.
    >
    > Here i am appending my program........
    >
    > but my problem is there is some time delay for
    > execution of instruction , which limits the sampling
    > rate.
    >
    > i can only sample at a rate of 300 samples per
    > second...
    > that means it is taking 3 ms for execution of less
    > than 10 instructions........
    >
    >
    > Is there any solution to this problem..... how can i
    > increase my sampling rate ????
    >
    >
    > i need this information urgently
    >
    > if anybody used parport for interfacing ADC, can u
    > tell me how to get rid of the problem
    >
    >
    > thanks in advance
    >
    >
    > Best Regards
    >
    > Ranganadh
    >
    >
    >
    > ________________________________________________________________________
    > Missed your favourite TV serial last night? Try the new, Yahoo! TV.
    > visit http://in.tv.yahoo.com

    -- To unsubscribe, send mail to: linux-parport-request@torque.net --
    -- with the single word "unsubscribe" in the body of the message. --



    This archive was generated by hypermail 2b29 : Sun Dec 22 2002 - 04:02:51 EST