<html>
<head>
</head>
<body>
I have to make a correction on those previous calculations. I did not read
the settings on my CRO correctly. The actual values are 1 message every 450
us, (not 4 us) and 1 every 500us.  So I am actually at the extremes. The
maximum transfer I could expect from a MIDI device would be one byte every
320 us (10 bits per byte). So not setting the event (as Chris Johns suggested)
does save me a valuable 50us. <br>
<br>
Angelo Fraietta wrote:<br>
<blockquote type="cite" cite="mid:3C9FB2C5.60109@bigpond.com">   After some
exhaustive testing I have come up with some figures that represent data exchange
rates between the Pic microcontroller and the 386 using a PLA as an interface
on an ISA bus using an interrupt driven I/O read/write paradigm.<br>
  <br>
 What I have done is make the Pic and the 386 communicate with each other, 
each triggering an interrupt with the other, causing it to write to the other 
device.<br>
  <br>
 With the RTEMS event being triggered every  interrupt I have a constant
exchange rate of 1 message each way every 5 us.<br>
  <br>
 Triggering the event only if the receive queue is empty gives me an exchange 
rate of 1 Message every 4 us. I am saving 1 us by not sending the unnecessary 
event.<br>
  <br>
 The big factor in this test, however, is this method that I used to check 
the exchange rates completely blows the 1 message every  650 us measurement 
I previously made away, thus proving that the interrupt rate will more than 
adequately sustain an input Midi stream running at maximum transfer rate (31.25kbs,
which is about 3 bytes per ms) <br>
  <br>
 Angelo Fraietta wrote:<br>
  <blockquote type="cite" cite="mid:3C785817.3030002@bigpond.com">      You 
are right. Sending the event if the queue was not originally empty when the 
ISR came is not necessary. I was already looping the task until the queue 
was empty; I was, however, sending the event regardless -- which is actually 
wasting CPU cycles. Thanks for the tip? I'll see what I can get the interval 
down to by not sending an unnecessary event.<br>
    <br>
  Chris Johns wrote:<br>
    <blockquote type="cite" cite="mid:3C784A08.B8858476@cybertec.com.au">
      <pre wrap="">Angelo Fraietta wrote:<br></pre>
      <blockquote type="cite">
        <pre wrap="">Within the ISR I am doing the following:<br><br>Reading a 16 bit word from an I/O address<br>Decoding and adding that word onto a queue that is emptied out by a<br>running task<br>Checking a second queue for data that needs to be transmitted<br>Transmitting a word to the I/O card.<br>Setting an event that causes the running task to empty the queue.<br><br></pre>
        </blockquote>
        <pre wrap=""><!----><br>I would only send the event if the queue is empty and have the task loop<br>until the queue is empty.<br> <br><br></pre>
        </blockquote>
        <br>
        <pre class="moz-signature" cols="$mailwrapcol">-- <br>Angelo Fraietta<br><br>PO Box 859<br>Hamilton NSW 2303<br><br>Home Page<br><br><br><a class="moz-txt-link-freetext" href="http://www.users.bigpond.com/angelo_f/">http://www.users.bigpond.com/angelo_f/</a><br><br>There are those who seek knowledge for the sake of knowledge - that is CURIOSITY<br>There are those who seek knowledge to be known by others - that is VANITY<br>There are those who seek knowledge in order to serve - that is LOVE<br>    Bernard of Clairvaux (1090 - 1153)</pre>
        <br>
        </blockquote>
        <br>
        <pre class="moz-signature" cols="$mailwrapcol">-- <br>Angelo Fraietta<br><br>PO Box 859<br>Hamilton NSW 2303<br><br>Home Page<br><br><br><a class="moz-txt-link-freetext" href="http://www.users.bigpond.com/angelo_f/">http://www.users.bigpond.com/angelo_f/</a><br><br>There are those who seek knowledge for the sake of knowledge - that is CURIOSITY<br>There are those who seek knowledge to be known by others - that is VANITY<br>There are those who seek knowledge in order to serve - that is LOVE<br>    Bernard of Clairvaux (1090 - 1153)</pre>
        <br>
        </blockquote>
        <br>
        <pre class="moz-signature" cols="$mailwrapcol">-- 
Angelo Fraietta

PO Box 859
Hamilton NSW 2303

Home Page


<a class="moz-txt-link-freetext" href="http://www.users.bigpond.com/angelo_f/">http://www.users.bigpond.com/angelo_f/</a>

There are those who seek knowledge for the sake of knowledge - that is CURIOSITY
There are those who seek knowledge to be known by others - that is VANITY
There are those who seek knowledge in order to serve - that is LOVE
    Bernard of Clairvaux (1090 - 1153)</pre>
        <br>
        </body>
        </html>