PWM Help needed

hello
i need to modify the InitButtons() function below in a way that is not interfering the digital pin 3 pwm. I need to use pin 3 as pwm to control an lcd back light
if i comment the InitButtons function in the void setup the back light works fine but i can’t read the key pad

#define KeysPin    0//Arduino analog pin where the Keypad is connected
#define Sensor1Pin 1//Arduino analog pin where the Sensor 1 is connected
#define Sensor2Pin 2//Arduino analog pin where the Sensor 2 is connected
#define BkLightPin 3//Arduino digital pin where the BackLight is connected
#define Sensor1PWR 8//Arduino digital pin where the Sensor 1 is connected
#define Sensor2PWR 9//Arduino digital pin where the Sensor 2 is connected
#define Shutter1  10//Arduino digital pin where the Output 1 Shutter is connected
#define Focus1    11//Arduino digital pin where the Output 1 Focus is connected
#define Shutter2  12//Arduino digital pin where the Output 2 Shutter is connected
#define Focus2    13//Arduino digital pin where the Output 2 Focus is connected
.....
void setup()
{
      Serial.begin(9600);
      InitButons();// Init buttons
...
}
void UpdateKey()
{
      unsigned int ReadVal;
      char KeyIn;
      byte i;
      ReadVal = analogRead(KeysPin);
        //Serial.println(ReadVal);
      KeyIn = GetKey(ReadVal);
      for(i=0; i<NUM_KEYS; i++)
      {
            if(KeyIn == i)  //one key is pressed 
            { 
                  if(BtnCount[i] < DEBOUNCE_MAX)
                  {
                        BtnCount[i]++;
                        if(BtnCount[i] > DEBOUNCE_ON)
                        {
                              if(BtnStatus[i] == 0)
                              {
                                    BtnFlag[i] = 1;
                                    BtnStatus[i] = 1; //button debounced to 'pressed' status
                              }        
                        }
                  }
            }
            else // no key pressed
            {
                  if (BtnCount[i] > 0)
                  {  
                        BtnFlag[i] = 0;      
                        BtnCount[i]--;
                        if(BtnCount[i] < DEBOUNCE_OFF)
                        {
                              BtnStatus[i] = 0;   //button debounced to 'released' status
                        }
                  }
            }
      }
}
void InitButons()// setup interrupt-driven keypad arrays
{  
      pinMode(KeysPin,INPUT); 
        // reset button arrays
      for(byte i=0; i<NUM_KEYS; i++)
      {
            BtnCount[i] = 0;
            BtnStatus[i] = 0;
            BtnFlag[i] = 0;
      }
      // Setup timer2 -- Prescaler/256
      TCCR2A &= ~((1<<WGM21) | (1<<WGM20));
      TCCR2B &= ~(1<<WGM22);
      TCCR2B = (1<<CS22)|(1<<CS21);      
      ASSR |=(0<<AS2);
      // Use normal mode  
      TCCR2A =0;    
      //Timer2 Overflow Interrupt Enable  
      TIMSK2 |= (0<<OCIE2A);
      TCNT2=0x6;  // counting starts from 6;  
      TIMSK2 = (1<<TOIE2);    
      SREG|=1<<SREG_I;
}
// Timer2 interrupt routine - 1/(160000000/256/(256-6)) = 4ms interval
ISR(TIMER2_OVF_vect) 
{  
      TCNT2  = 6;
      UpdateKey();
}

Can anyone help me to modify these functions in a way that i can use pwm on pin 3?

Thank you