- From: Frank Mori Hess <fmhess_at_users.sourceforge.net>
- Date: Tue, 16 Mar 2004 17:26:04 -0500
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sunday 14 March 2004 10:38 pm, Alex Fielding wrote: > > For example, when I register a comedi callback with TRIG_WAKE_EOS, using > an 800 nsec scan and convert clock, I receive interrupts to the callback > approximately every 34 microseconds - that roughly coincides with a 4K > block transfer size other posters have discovered. Setting the > cmd.flags for TRIG_WAKE_EOS or TRIG_RT has no effect on this behavior. > > When I setup my own 1 msec (for example) RT thread to poll the DMA > status of my 800 nsec scan clock, even with a call to comedi_poll() in > there, get_buffer_contents() will return 0 fifteen times in a row before > it returns values such as 4020, 15 more 0's then 4032, 17 more 0's then > 4224, 15 more 0's then 3978, etc. > > I was hoping to find a way to put my RT interrupt handler "in between" > each 800 nsec data conversion so it would examine every new piece of > data and react to it at a fast rate. That is, I'd like to use DMA as a > faster alternative to programmed IO using the comedi_read command. Fixing comedi_poll and TRIG_WAKE_EOS to work with the mite's dma shouldn't be difficult. I'll probably do it this weekend. However, your hope of being able to handle interrupts at over a megahertz is unrealistic. It takes about a microsecond just to read one of the board's status registers. - -- Frank -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQFAV38A5vihyNWuA4URAtFHAJ9G37RUtf6eGiaOEco38xcjLbxg9QCgtsbK JwEOw1jaM12EK75oFgj3+lg= =N90Z -----END PGP SIGNATURE-----
Received on 2004-03-16Z22:26:04