other interrupts in rc channel reader
currentMillis = millis();
  previousMillis = currentMillis;



So currentMillis and previousMillis will always be exactly the same, right?


  if (currentMillis - previousMillis &gt;= interval) {



So if 0 &gt;= interval (which it won't be) do something?

Therefore your fading code will never be executed.