I realize that it will result in only 10 positions, since the full signal only varies by a total of 1ms (1.5ms to 2.5ms) but I could probably see how high that could be pushed if I were to test this. It is of course limited by the speed of the PIC. However if it can handle 100us, it would be enough for this application, which is bidirectional motor control to drive an RC skid steer vehicle. so you could have 4 or 5 speeds in forward or reverse. Of course more resolution is far preferable to make it less twitchy. I would use the capture module, which can be very exact by setting it to interrupt when the signal goes high, recording the time and setting to interrupt on fall, then recording the time again. But there are only so many capture modules. I'm not sure if they can be set to watch multiple pins for an interrupt, and if they can I don't know how.
The person sent me some o-scope shots, and they seem to be syncronous as you predicted:
**broken link removed**
**broken link removed**
**broken link removed**
for some reason channel 4 is offset. But anyway, he only wants to get 2 channels. So the CCP thing may work since the 18F1320 has two CCP modules. Or I could try and push the frequency at which it checks a bit higher and use the port checking method. It's too bad the timing is all different, I'd like to make it so that it could read any PWM servo signal, and atleast 4 of them, but that would probably require it to detect what kind of timing it was getting and then configure itself for it.