Reading multiple RC channels using pulseIn()

Hello, in Arduino 0011 I've been successful in reading multiple channels from an RC receiver by doing the following:

  // Setup interrupt to trigger on pin D2
  attachInterrupt(0, interruptHandler, RISING);

The in another sketch I do:

void interruptHandler() {
    // Read Receiver
    // This has been tested with AR6100 and AR6200 Spektrum receivers
    roll = pulseIn(ROLLPIN, HIGH, TIMEOUT);
    aux = pulseIn(AUXPIN, HIGH, TIMEOUT);
    mode = pulseIn(MODEPIN, HIGH, TIMEOUT);
    pitch = pulseIn(PITCHPIN, HIGH, TIMEOUT);
    throttle = pulseIn(THROTTLEPIN, HIGH, TIMEOUT);
    yaw = pulseIn(YAWPIN, HIGH, TIMEOUT);
}

I know the order that the PWM signals come out of my receiver, so I attach an interrupt to the first channel being output from my receiver, then use pulseIn to read the remaining channels. It takes about 14ms to read in 6 channels using this method.

My main problem is that this worked fine in Arduino 0011, but when I try it in 0012 or 0013 it hangs when I do the attachInterrupt function call. I don't see any compile error messages under 0012 or 0013. I'd like to use Mem's ServoDecode library, but I don't have access to a PPM signal with the Spektrum receiver's I use.

If this is hopless in 0012 or 0013, is there an alternative approach to read multiple RC channels in the background if the order of channels to read is known (like I'm doing for the pulseIn approach)? Maybe somehow attach a timer to each digital pin in a known order to measure each PWM pulse length? I'm not knowledgeable enough to do it on my own, but if someone could help point the way (maybe some pseudocode) I'd be very appreciative.

Thanks!

There has been a change to the pulseIn() function in 13 in that it no longer gives a reading for a pulse already in progress. It looks like this is making it incompatible with what you are trying to do. You will have to write your own version of plulsIn()

This thread has source code and an example sketch for decoding a RC signal in background using timer1: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1228137503

Thanks for the replies guys. Mem, I've been eyeing your ServoeDecode library for a while. My issue is that with the Spektrum receivers, we won't done have access to a PWM stream like you can hack into with other receivers. The other solution would be to make a circuit to combine the PWM signals into pin 8.

Grumpy Mike, I guess that actually answers my question... why not just use the version of pulseIn() used in 0011? I looked through Google Code for the different versions of pulseIn. I've found the different versions for 0011 and 0013, and will try to just rename the 0011 version for use in 0013.
0011: Google Code Archive - Long-term storage for Google Code Project Hosting.
0013: Google Code Archive - Long-term storage for Google Code Project Hosting.

If you are interested, this code is used to control a quadrocopter, my full set of skteches can be found at: Google Code Archive - Long-term storage for Google Code Project Hosting.

Mikro, there is a thread here that may be of some help: Getting PPM output from a Spektrum RX without any PPM stage - RC Groups