user61410: Simple question, I have set my ADC to read in "continuous"/interrupt mode and I take the reading the following way: 
ISR(ADC_vect) {
   int val = ADCL;
   val += ADCH << 8;
   ... //Code to do stuff with reading here.
   }

My question is does the ADC start the new reading as soon as I have read the ADCH register or does it wait for the code inside the interrupt to finish? Basically I need to know if having more instructions in the interrupt will slow down my reading rate.
I don't have an oscilloscope or any good way to measure my reading rate accurately enough to know if a few extra lines of codes is affecting the rate or not.

user7508: Your answer is correct. The ADC does indeed keep going independently of
what the ISR does. There is, however, a point I would like to make
clearer. You asked:

My question is does the ADC start the new reading as soon as I have
  read the ADCH register or does it wait for the code inside the
  interrupt to finish?

The ADC starts a new reading as soon as it is done taking the previous
one, irrespective of whether you read ADCH or not. When your ISR
starts, the ADC is already busy making the following conversion. This
guarantees a steady conversion rate, at one A/D conversion every
13 ADC clock cycles exactly.
As a side note, you can read the result with
int val = ADC;

No need to read the bytes separately unless you are using a very ancient
version of gcc that does not know how to read a 16-bit register.

61410: <p>Simple question, I have set my ADC to read in "continuous"/interrupt mode and I take the reading the following way: </p>

<pre><code>ISR(ADC_vect) {
   int val = ADCL;
   val += ADCH &lt;&lt; 8;
   ... //Code to do stuff with reading here.
   }
</code></pre>

<p>My question is does the ADC start the new reading as soon as I have read the ADCH register or does it wait for the code inside the interrupt to finish? Basically I need to know if having more instructions in the interrupt will slow down my reading rate.</p>

<p>I don't have an oscilloscope or any good way to measure my reading rate accurately enough to know if a few extra lines of codes is affecting the rate or not.</p>
 7508: <p>Your answer is correct. The ADC does indeed keep going independently of
what the ISR does. There is, however, a point I would like to make
clearer. You asked:</p>

<blockquote>
  <p>My question is does the ADC start the new reading as soon as I have
  read the ADCH register or does it wait for the code inside the
  interrupt to finish?</p>
</blockquote>

<p>The ADC starts a new reading as soon as it is done taking the previous
one, <em>irrespective of</em> whether you read ADCH or not. When your ISR
starts, the ADC is already busy making the following conversion. This
guarantees a steady conversion rate, at one A/D conversion every
13&nbsp;ADC clock cycles exactly.</p>

<p>As a side note, you can read the result with</p>

<pre class="lang-cpp prettyprint-override"><code>int val = ADC;
</code></pre>

<p>No need to read the bytes separately unless you are using a very ancient
version of gcc that does not know how to read a 16-bit register.</p>
