I have the Taranis and the original CPPM update rate was 18mS, but Frsky slowed it down sometime back, perhaps 2-years ago after issues with some servos and receivers. They made the firmware updates available, still are, but if you have recent equipment they should be OK as specified. You can update the tx and Rx firmware to solve the update frequency problems, well they were fine on all FrSky equipment.
Your code would need to use PULSIN to wait for the sync pulse then read each consecutive pulse acting on the width of each as required.
loop:
PULSIN pin, 1, variable
IF variable < 500 THEN GOTO loop ;wait for the sync pulse of 5mS
PULSIN pin, 1, channel1
PULSIN pin, 1, channel2
PULSIN pin, 1, channel3
PULSIN pin, 1, channel4
PULSIN pin, 1, channel5
PULSIN pin, 1, channel6
PULSIN pin, 1, channel7
PULSIN pin, 1, channel8
PULSIN pin, 1, channel9
; Now you have the width of each channel you can do something
IF channel1 = 100 THEN GOSUB switchonlights ; if this channel is a minimum or 1.0mS then do something
IF channel3 = 150 THEN GOSUB geardown ; if this channel is at the middle or 1.5mS then do something
IF channel6 = 200 THEN GOSUB flapsdown ; if this channel is a maximum or 2.0mS then do something
IF channel1 < 175 GOSUB flashthelights ; and so on
GOTO loop
switchonlights:
LOW pinx
RETURN
~~~
Is how I would approach this. It is probably not more complicated than that. Bruce has a good visualisation here:
https://www.youtube.com/watch?v=FBAKxz7NSJk
I think you should have enough time to receive each pulse and like hippy says, you could miss a frame or two while you process the data as long as your not using the data to control a model like an aircraft as a lot could happen in the mill-seconds between a command!