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
using it several places in main loop code assuming it is doesn't get modified between reads that is not the most common reason for "much hair-pulling and cursing". The one most get caught on is reading an int/short/long (anything beyond 8 bits) in main without disabling interrupt. Erik