I was looking for the best way to read servo pulses from an RC receiver, and it occurred to me that I should use pin change interrupts for that, and that led to me finding this lib which does that very thing:
I have one question though... Why does this lib use the Timer1 lib? Timer 1 is used by the servo library, so using that, I think, would make this lib incompatible with that. So why doesn't it just use Micros() to do the timing?
Was this just an odd choice on the part of the library developer, or is there some advantage to using Timer 1? Perhaps the Timer 1 lib just provided a convenient way to track multiple events? But why would that lib even exist in the first place when you can do that using Micros() and it would be a waste of a very rare resource? And couldn't it have been implemented as part of the code that updates Micros() and Millis() if it was so important the code be in a timer interrupt?
And before anyone suggests I use just Timer2 instead, I need that for my sound circuitry.