In my main loop, I'm having the arduino read multiple inputs, recall data from the previous loop, and calculate some values. I'd like to also have an interrupt attached, but I don't want it to mess with the data recall.

I have two questions.

1) When the interrupt function is complete, where does the code pick up again? At the beginning of the loop, or exactly where it left off?

2) If the interrupt came in the middle of a delay, what happens?

Exactly where it left off, the very next machine instruction, not C statement. A delay is just a sequence of machine instructions.

Thank you! :)