Witam. Problem mam, a właściwie to nie tyle problem co pytanie, czy można moje zamierzenie rozwiązać prościej.
Otóż w urządzeniu które buduję do nawigacji użyty jest joystick z siemensa działający jak 5 klawiszy więc można przyjąć, że mam 5 klawiszy. Urządzenie cały czas coś wyświetla, liczy więc obsługa w pętli głównej odpada, bo można by przegapić krótkie wciśniecie klawisza. Zatem konieczne jest zrealizowanie tego w przerwaniach. Joy podłączony jest do 5 portów z pull-up'em. Porty te ustawione są jako kanały zdarzeń i aktywne zboczem opadającym. Docelowo ma być jeszcze jeden klawisz tego typu więc już mi ucieka 6 kanałów a szkoda, bo zostaje już tylko 2 a potrzeba mi jeszcze kilka. W obecnej sytuacji każdy klawisz ma swój wektor i swoje przerwanie, co z jednej strony jest wygodne bo nie trzeba rozpoznawać który klawisz został wciśnięty a z drugiej kłopotliwe, bo przy rozbudowanym menu będę musiał w każdym przerwaniu napisać sporo kodu. Tak więc mam 2 powody, aby wszystko wrzucić w jedno przerwanie i uprościć obsługę oraz zaoszczędzić kanały.
Mam pomysł jak to bardzo prosto zrealizować sprzętowo ale jeśli można programowo, to po co dorzucać tych kilka elementów. Więc dochodzę do meritum i tu moje pytanie:
Czy da się programowo ustawić kilka portów wejściowych na jeden kanał zdarzeń? Tak aby po wystąpieniu zadanego poziomu/zbocza na którymkolwiek ze kilku zdefiniowanych portów wystąpiło tylko jedno przerwanie?
Otóż w urządzeniu które buduję do nawigacji użyty jest joystick z siemensa działający jak 5 klawiszy więc można przyjąć, że mam 5 klawiszy. Urządzenie cały czas coś wyświetla, liczy więc obsługa w pętli głównej odpada, bo można by przegapić krótkie wciśniecie klawisza. Zatem konieczne jest zrealizowanie tego w przerwaniach. Joy podłączony jest do 5 portów z pull-up'em. Porty te ustawione są jako kanały zdarzeń i aktywne zboczem opadającym. Docelowo ma być jeszcze jeden klawisz tego typu więc już mi ucieka 6 kanałów a szkoda, bo zostaje już tylko 2 a potrzeba mi jeszcze kilka. W obecnej sytuacji każdy klawisz ma swój wektor i swoje przerwanie, co z jednej strony jest wygodne bo nie trzeba rozpoznawać który klawisz został wciśnięty a z drugiej kłopotliwe, bo przy rozbudowanym menu będę musiał w każdym przerwaniu napisać sporo kodu. Tak więc mam 2 powody, aby wszystko wrzucić w jedno przerwanie i uprościć obsługę oraz zaoszczędzić kanały.
Mam pomysł jak to bardzo prosto zrealizować sprzętowo ale jeśli można programowo, to po co dorzucać tych kilka elementów. Więc dochodzę do meritum i tu moje pytanie:
Czy da się programowo ustawić kilka portów wejściowych na jeden kanał zdarzeń? Tak aby po wystąpieniu zadanego poziomu/zbocza na którymkolwiek ze kilku zdefiniowanych portów wystąpiło tylko jedno przerwanie?
