menu lcd button?

I have a problem in making my assignments.
My difficulty in directing the cursor button up and down on the menu.
I ask for help, take a look at my button “up” and “down” in program and you see where my mistake? thanks

#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);  
 
int keypad_pin = A0;
int keypad_value = 0;
int keypad_value_old = 0;
char btn_push;
byte mainMenuPage = 1;
byte mainMenuPageOld = 1;
byte mainMenuTotal = 3;
 
void setup()
{
    lcd.begin(20,4);
    Serial.begin(9800);
    MainMenuDisplay();  
}
void loop()
{   
    btn_push = ReadKeypad();
    MainMenuBtn();
    if(btn_push == 'S')//enter selected menu
    {
        WaitBtnRelease();
        switch (mainMenuPage)
        {
            case 1:
              MenuA();
              break;
            case 2:
              MenuB();
              break;
            case 3:
              MenuC();
              break;
        }
          MainMenuDisplay();
          WaitBtnRelease();
    }
}
void MenuA(){  
    lcd.clear(); lcd.setCursor(0,0); lcd.print("Inside Menu A");
    while(ReadKeypad()!= 'L')
    {}}
void MenuB(){  
    lcd.clear(); lcd.setCursor(0,0); lcd.print("Inside Menu B");
    while(ReadKeypad()!= 'L')
    {}}
void MenuC(){  
    lcd.clear(); lcd.setCursor(0,0); lcd.print("Inside Menu C");
    while(ReadKeypad()!= 'L'){}}
 
void MainMenuDisplay()
{
    lcd.clear();
    lcd.setCursor(3,0);
    lcd.print("weather PORTABLE");
    lcd.setCursor(3,1);
    lcd.print("CHEK ");
    lcd.setCursor(3,2);
    lcd.print("open SD Card");
    lcd.setCursor(3,3);
    lcd.print("Open DATA LOGGER");
    switch (mainMenuPage)
    {
        case 1:
          lcd.setCursor(0,1);
          lcd.print("->");
          break;
        case 2:
          lcd.setCursor(0,2);
          lcd.print("->");
          break;
        case 3:
          lcd.setCursor(0,3);
          lcd.print("->");
          break;
    }
}
 
void MainMenuBtn()
{
    WaitBtnRelease();
    if(btn_push == 'U')
    {
        mainMenuPage++;
        if(mainMenuPage > mainMenuTotal)
          mainMenuPage = 1;
    }
    else if(btn_push == 'D')
    {
        mainMenuPage++;
        if(mainMenuPage < mainMenuTotal)
          mainMenuPage = 1;    
    }
    if(mainMenuPage != mainMenuPageOld) //only update display when page change
    {
        MainMenuDisplay();
        mainMenuPageOld = mainMenuPage;
    }
}
 
char ReadKeypad()
{

  keypad_value = analogRead(keypad_pin);
Serial.println(keypad_value); 
  if(keypad_value > 540 && keypad_value < 590)
    return 'R';
  else if(keypad_value> 600 && keypad_value < 650)
    return 'U';
  else if(keypad_value >710 && keypad_value< 835)
    return 'D';
  else if(keypad_value >470 && keypad_value < 500)
    return 'L';
  else if(keypad_value>670 && keypad_value < 700)
    return 'S';
  else
    return 'N';
}
 
void WaitBtnRelease()
{
    while( analogRead(keypad_pin)>670 && analogRead(keypad_pin) < 700) {}
}