The variable is defined in *.h:
static unsigned char cPwLe[3] = {0};
cPwLe[cCh] = Power_Level(cP[cCh]); //Here value is right
cPower = cPwLe[cCh]; //Here value is always 0
Study the meaning and use of the volatile keyword. Code generated for the main routine might not use the latest value of a variable updated by an ISR unless that variable is declared volatile.