Witam.
"Przerabiając" książkę p. Tomasza Francuza "Język C dla mikrokontrolerów AVR" natknąłem się na problem obsługi klawiatury matrycowej w przerwaniach.
Klawiatura ma wykorzystywać kolejne ustawianie stanu niskiego na pinach na potrzeby multipleksowania. Niestety wciskanie przycisków klawiatury nie powoduje żadnej reakcji. Co ciekawe (dla mnie) po wypięciu tranzystora (czyli odpowiedni pin nie jest już współdzielony między LED i klawiaturę, lecz wykorzystywany jest tylko przez klawiaturę) przyciski na odpowiedniej kolumnie działają. Podsumowując: wszystkie tranzystory wpięte - brak reakcji, tranzystor wypięty - 4 przyciski odpowiedniej kolumny działają jak należy. W czym może tkwić problem?
Dodam, że multipleksowanie działa jak należy. Uruchamiane na ATmega88.

"Przerabiając" książkę p. Tomasza Francuza "Język C dla mikrokontrolerów AVR" natknąłem się na problem obsługi klawiatury matrycowej w przerwaniach.
Klawiatura ma wykorzystywać kolejne ustawianie stanu niskiego na pinach na potrzeby multipleksowania. Niestety wciskanie przycisków klawiatury nie powoduje żadnej reakcji. Co ciekawe (dla mnie) po wypięciu tranzystora (czyli odpowiedni pin nie jest już współdzielony między LED i klawiaturę, lecz wykorzystywany jest tylko przez klawiaturę) przyciski na odpowiedniej kolumnie działają. Podsumowując: wszystkie tranzystory wpięte - brak reakcji, tranzystor wypięty - 4 przyciski odpowiedniej kolumny działają jak należy. W czym może tkwić problem?
Dodam, że multipleksowanie działa jak należy. Uruchamiane na ATmega88.
Kod: C / C++