Też jestem początkujący, ale może coś doradzę.
Moje uwagi do kodu
1. Po co Ci i=0; w linii 35 i 42?
2. Zmienną i z 25 linii wyrzuciłbym do 36 i 43 linii i dał for( uint8_t i=0; i<9; i++ )
nigdzie więcej tego nie używasz
3.co do drgań styków to najprościej na początku while(1) dałbym sprawdzenie przycisku
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wcześniej oczywiście trzeba zadeklarować time_btn np uint8_t
i byłoby to czytelniej i wywalić to z funkcji i w ogóle wywalić funkcję. Sprawdź to czy to zadziała bo piszę na kolanie.
Ale możesz też skoczyć do linka co podał zoom i zrobić wypasioną funkcję do obsługi drgań styków.
Ja tutaj dałem czas 50 ale możesz dać większy czas lub mniejszy - dobierzesz w zależności od prędkości procesora.
Teoretycznie takie zapytanie powinno się wykonać jeśli naciśniesz przycisk oraz zmienna time_btn równa się zero żeby uprościć to możesz napisać & !time_btn zamiast (time_btn ==0) ale tak jest czytelniej.