Powiem wprost.. proszę ... nie pisz takiego kodu! Co z tego że inni piszą jeszcze gorszy (np. tasiemiec switch-case który wyłącza i włącza diody... )
W programowaniu obowiązuje zasada że kod który się powtarza, łamie regułę DRY (ang. Don't Repeat Yourself). U Ciebie jest ,,stado swirch-case" a możesz to zrobić bardzo prosto definiując tablicę z wartościami każdego z warunków i sprawdzając czy dane mieszczą się w zakresie. Indeks dopasowanej komórki tablicy to numer klawisza. Prosto, łatwo i skutecznie bez ,,tasiemca" z switch-case. Zwykłe for po tablicy z 1 if a w środku break po dopasowaniu! I kod mniejszy i szybciej będzie działało niż to.. coś....
PS. Jak miałbym wskazać jaką konstrukcję usunąć z C, to było by to switch-case. W 99% można zastąpić ją czytelniejszym if lub tablicą. Twój przypadek nie należy do tego 1%

PS2. No i jeszcze kwiatki ze zmienną globalną.. eh..
Jaka jest objętość wsadu do MCU teraz? Jak poprawisz na tablicę i przemyślisz zwracanie klawisza w metodzie sprawdz, to zobaczysz że kod _bardzo_ zmaleje

Bardzo dziękuję za uwagę i inną propozycję rozwiązania mojego problemu. Powiem szczerze, że nie podobało mi się wersja z poleceniem case ale nie wpadłem na inne rozwiązanie
Kod z instrukcją case zajmował 1646b, a kod z tablicą i instrukcją for 1438b.