I understand the algorithm you're describing but what I'm seeing is that the interrupts are happening more often than they should so irrespective of HOW you calculate the pulse frequency (whether by the period method I'm using or the counting method you're describing), both strategies depend on the interrupts occurring at the right times. If the car's ECM is putting out a square wave at 10Hz and the interrupt routine is firing at 70 Hz, changing the code won't affect the results. I have a suspicion that there is either a DC offset or sufficient noise to hit the interrupt threshold value prematurely so I think your earlier suggestion to test a clean square wave is the most prudent call. If my hunch is right, I may have to abandon basic interrupts altogether and use the comparator's interrupt vector instead because at least that way, the arduino is looking for a single voltage threshold rather than a range from HIGH to LOW. Then I can use a pot or something to figure out what the perfect voltage ref ought to be, so that the peaks and valleys of my square wave are equidistant from it.