Witam.
Niedawno napisałem prosta funkcję obsługi klawiatury matrycowej 4x4. Chciałbym teraz poprawić troche tą funkcję i zrobić ją trochę bardziej profesjonalnie. Czy ma ktoś jakiś pomysł jak przerobić funkcję, żeby nie używać opóźnienia? oraz jak zastąpić while z oczekiwaniem na zwolnienie przycisku? Proszę o wyrozumiałość i pomoc w problemie. Poniżej zamieszczam cześć kodu:
Niedawno napisałem prosta funkcję obsługi klawiatury matrycowej 4x4. Chciałbym teraz poprawić troche tą funkcję i zrobić ją trochę bardziej profesjonalnie. Czy ma ktoś jakiś pomysł jak przerobić funkcję, żeby nie używać opóźnienia? oraz jak zastąpić while z oczekiwaniem na zwolnienie przycisku? Proszę o wyrozumiałość i pomoc w problemie. Poniżej zamieszczam cześć kodu:
if(i==1) //Sprawdzanie kolumny
{
if((PINB>>4)==14) // Sprawdzanie wiersza
{
_delay_ms(10); // Przeczekuje drgania
if((PINB>>4)==14) // Ponowne sprawdzenie stanu przycisku
{
...// Kod programu
while((PINB>>4)==14); // czeka, aż klawisz nie zostanie zwolniony
}
}
............. //pozostałe przyciski
}