Weekend, weekend i po weekendzie... fajnie że tyle osób testuje złomka. To budujące że ktoś to buduje i testuje. A zatem do dzieła jedziemy dalej.
Dzisiaj zanim pójdę spać bo rano w trasę 

 Postanowiłem przepisać obsługę klawiszy  STEP i RIT, a konkretnie wzorem z Heńka przewalić je na jedno wejście, bo przyda nam się parę fajnych klawiszy a wejść jest jak na lekarstwo. Dodatkowo przeniosłem sygnał PTT z pinu 12 na 2, a dlaczego o tym na końcu.
Zacząłem od tego że przygotowałem dwie zmienne typu boolean by przechowywać status tych przycisków.
Kod:
boolean step_button_pressed = false;
boolean rit_button_pressed = false;
 
Do sprawdzania stanu wciśnięcia przycisków użyjemy jednego z wejść, dokładnie tego którego używaliśmy do obsługi przycisku krok syntezy, w tym miejscu by mocno w kodzie nie mieszać poprostu zapalamy flagi wciśniętych klawiszy:
Kod:
const int buttons_input = A2;
 
A robimy to tak:
Kod:
if(analogRead(buttons_input) < 1000){         //jeśli cokolwiek jest wciśnięte to sprawdźmy co to
    delay(10);                                  //male opoźnienie by się ustabilizował stan
    int adc_value = analogRead(buttons_input);
    Serial.println(adc_value);                  //w tym miejscu sprawdzisz jaka wartość ma wcisnięty klawisz patrz port RS232 debugowanie
    if(adc_value < 10){                         //pierwszy przycisk
      step_button_pressed = true;
    }
    if(adc_value > 10 && adc_value < 100){      //drugi przycisk
      rit_button_pressed = true;
    }
    
  }else{                                  //w każdym innym przypadku resetujemy flagi przycisków
      step_button_pressed = false;        //reset przycisku step
      rit_button_pressed = false;         //przycisk rita
  }
 
Uwagę proszę zwrócić na pierwszą linię tej funkcji, by nie opóźniać procesora podczas normalnej pracy gdy żaden z przycisków nie jest naciśnięty, funkcja ta nie sprawdza już nic więcej tylko resetuje flagi przycisków.
Poszczególne funkcje które dotychczas sprawdzały stan wejść teraz sprawdzają tylko stan flag przycisków.
Było tak:
Kod:
//obsługa klawisza zmiany kroku
  if(digitalRead(step_input) == LOW){     //sprawdzanie czy przycisk jest wcisnięty
    delay(50);                            //zwłoka by wyeliminować drgania styków
    if(digitalRead(step_input) == LOW){ 
......
 
a teraz jest tak:
Kod:
//obsługa klawisza zmiany kroku
  if(step_button_pressed == true){        //sprawdzanie czy przycisk jest wcisnięty
    delay(50);                            //zwłoka by wyeliminować drgania styków
    if(step_button_pressed == true){
....
 
Podobnie zrobiłem w części kodu obsługującego klawisz RIT.
Jesli chodzi zaś o przeniesienie sygnału PTT na pin 2 to intencją było zwolnienie pinu 12-tego który może pracować jako PWM. A na nim zrobimy sobie w następnym odcinku ściemnianie podświetlenia wyświetlacza. Taki wypas 
Mały schemat podłączenia przycisków.
W załączeniu kod po ostatnich zmianach.