Serial data always -1 when nothing happening

currentMillis is not volatile because the value is not being changed in the ISR. I was under the impression it only needed to be volatile if the variable was changed in a ISR. Maybe I should look up the definition of volatile and when to use it.

And why currentMillis is not in the ISR is because I don't know exactly what I'm doing..Learning as I go...

But from what I read in the reference section (http://www.arduino.cc/en/Reference/AttachInterrupt) It says: "Inside the attached function, delay() won't work and the value returned by millis() will not increment."
So I did not put currentMillis into the ISR due to that, maybe I am misunderstanding that comment. And I am using the currentMillis for a timer to send the serial data. If I move that variable to the ISR then will my sending interval timer even function properly since currentMillis would only be updated when an interrupt is triggered?

Now that you have brought up that question, it makes me think that just cause it won't increment, it will still give me the "exact" time that the interrupt was tripped.

 averageRpm_0 = (1000 * 60 / pulsesPerRev / pulseDuration_0)*(-1);
 averageRpm_1 = (1000 * 60 / pulsesPerRev / pulseDuration_1)*(-1);

This is being multiplied by -1 so that my rpm comes out positive, otherwise I get a negative RPM reading. I could just take abs() but multiplying by -1 was so easy.