logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega16][Bascom][Keyb PC] Jak odczytać strzałki...?

Pikolini 31 Maj 2009 09:41 1119 2
REKLAMA
  • #1 6597227
    Pikolini
    Poziom 19  
    Witam!
    Potrzebuję zastąpić nietypową klawiaturę w maszynie.
    Dopiero zacząłem bawić się Bascomem i AVR.

    Podłączyłem do Atmega16 klawiaturę od PC i LCD.
    Napisałem program oparty o wbudowane polecenia Config Keyboard.
    Kody klawiszy naciśniętych odczytuje poleceniem getatkeyb, getatkeybraw.
    Wszystkie potrzebne klawisze juz umiem odczytac i wysterowac potrzebne wyjscia.

    Nie potrafię jednak odczytać klawiszy kursora (strzałki).
    Każdy klawisz zwraca jednakowy kod, bo dopiero drugi kod mówi, która strzałka została naciśnięta.
    Jest to w tej maszynie niezbędne, więc może komuś na forum udało się zrobić takie cudo.

    Próbowałem procedur w asemblerze jakie znalazłem na necie, ale jak na drugi dzień bawienia sie bascomem to nie mogę sobie jeszcze poradzić.
  • REKLAMA
  • #2 6599445
    DosinskY
    Poziom 19  
    Nie miałem dużej styczności z BASCOM dla AVR i nie znam funkcji, które podajesz. Mogę za to polecić sporządzenie własnych funkcji...skrojonych na miarę. Generalnie można obsłużyć każdy klawisz znajdujący się na klawiaturze. Jest to kwestia prawidłowego rozpoznawania wysyłanych przez nią bajtów.
    Klawisze "standardowe" takie jak a, b, c itd. w chwili wciśnięcia zwracają 1 bajt a w chwili puszczenia 2 bajty, co jest to szalenie przydatne. Klawisze "niestandardowe" w chwili wciśnięcia zwracają 2 bajty a po puszczeniu 3 bajty. Prawdopodobnie tu jest pies pogrzebany i być może w ich przypadku trzeba korzystać z funkcji bascom-a w nieco inny sposób. Polecam zapoznać się z tablicą scan codes. Na pewno wiele wyjaśni:
    http://www.computer-engineering.org/ps2keyboard/scancodes2.html
  • #3 6599511
    Pikolini
    Poziom 19  
    Jest właśnie tak jak piszesz.
    Dlatego chciałbym prosić kogoś co zna assembler i napisze - poda jakąś procedurę i objaśni na jakiej zasadzie to działa.
    A co ważniejsze jak w bascomie odczytać zmienne z innej procedury w asemblerze.
    Może ma ktoś link do podobnego temetu, niekoniecznie dotyczącego mojego problemu.
REKLAMA