Jak obsługiwać klawiaturę PC na mikrokontrolerze przy problemie z wydawaniem kodów?

Obsluga klawiatury PC na uC





Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Lankosz" <nie_at_nospam_lubie.spamu>
Subject: Obsluga klawiatury PC na uC
Date: Fri, 29 Mar 2002 21:00:32 +0100


Heloł !

Mam mały problemik z czytaniem klawiatury PC-towej na uC. Chodzi o to, że
w/g opisu na Beyond Logic cytuję:

"However your keyboard will also send another code when the key has been
released. Take the example of the 'A' key again, when released, the keyboard
will send F0 (hex) to tell you that the key with the proceeding scan code
has been released. It will then send 1C, so you know which key has been
released."

Rozumiem, że po zwolnieniu klawisza 'A' klawiatura ma wysyłać sekwencję
F01C. Moja klawiatura (stara) wysyła tylko F0 na koniec. Problem się pojawia
w momencie obsługi 'Shift' i detekcji który klawisz został zwolniony -
Shift, czy 'A' (lub dowolny inny). Jedna z not aplikacyjnych Atmela
prezentuje program, który ma działać właśnie tak, jak opisuje Beyond Logic.
U mnie jest tak, że zwykłe litery i znaki odczytuje dobrze, a z Shift-em nie
może sobie poradzić, ponieważ nie dostaje informacji o jego zwolnieniu
(tylko F0);

Ma ktoś może jakieś sposoby lub opisy? Może ja mam jakąś nietypową
klawiaturę?


--
Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/~sp9zcj/
e-mail: mike2001 (małpa) tlen.pl




Poprzedni Następny
Wiadomość
Spis treści
From: "Fish" <apf_jf_at_nospam_friko6.onet.pl>
Subject: Re: Obsluga klawiatury PC na uC
Date: Sat, 30 Mar 2002 10:42:45 +0100


"Michał Lankosz" <nie_at_nospam_lubie.spamu> wrote in message
news:a82h4c$r9$1_at_nospam_news.tpi.pl...
Heloł !

Mam mały problemik z czytaniem klawiatury PC-towej na uC. Chodzi o to, że
w/g opisu na Beyond Logic cytuję:

[ciach]

Ma ktoś może jakieś sposoby lub opisy? Może ja mam jakąś nietypową
klawiaturę?


A nie masz przypadkiem klawiatury od XT?
Albo przełączalnej AT/XT?

Z tego co pamiętam to klawiatury XT działały trochę inaczej - dlatego jakiś
czas temu sporo klawiatur miało przełączniki trybów.


--
Janusz




Poprzedni Następny
Wiadomość
Spis treści
From: "Rafal Baranowski" <Rafal.Baranowski_at_nospam_bloknet.pl>
Subject: Re: Obsluga klawiatury PC na uC
Date: Sat, 30 Mar 2002 20:19:11 +0100


Ma ktoś może jakieś sposoby lub opisy? Może ja mam jakąś nietypową
klawiaturę?

Zmien klawiature. :)
Ja bawilem sie dwoma i w obu shift dzialal jak nalezy.

Rafal.



Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Lankosz" <nie_at_nospam_lubie.spamu>
Subject: Re: Obsluga klawiatury PC na uC
Date: Sat, 30 Mar 2002 21:28:29 +0100


Zmien klawiature. :)
Ja bawilem sie dwoma i w obu shift dzialal jak nalezy.

Hm, podpiąłem jeszcze drugą - PS/2 i też nie działało poprawnie.
Podglądnąłem przebieg na karcie dźwiękowej i okazuje się, że jednak wysyła
zgodnie z opisami. Najwidoczniej błąd jest w procedurze odbioru (nie wyrabia
się?), ale prawie wszędzie w sieci jest ta sama kopia algorytmu z Atmela
(AN313 dla AVR-ów).
Cóż, pozostaje przeróbka procedur...

--
Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/~sp9zcj/
e-mail: mike2001 (małpa) tlen.pl




Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: Obsluga klawiatury PC na uC
Date: Sun, 31 Mar 2002 15:22:00 GMT


On Sat, 30 Mar 2002 20:19:11 +0100, Rafal Baranowski wrote:
Ma ktoś może jakieś sposoby lub opisy? Może ja mam jakąś nietypową
klawiaturę?

Zmien klawiature. :)
Ja bawilem sie dwoma i w obu shift dzialal jak nalezy.

Jestem niemal pewien ze klawiature ma typowa - innych po prostu nie
ma, a "do XT" zniknely wiele lat temu.

Moze jakies opoznienie w programie ? Odebrales F0, teraz cos tam
wykonujesz, i nastepny kod ginie ?

J.


Poprzedni Następny
Wiadomość
Spis treści
From: =?iso-8859-2?Q?Micha=B3_Lankosz?= <nie_at_nospam_lubie.spamu>
Subject: Re: Obsluga klawiatury PC na uC
Date: Sun, 31 Mar 2002 20:31:38 +0200


Jestem niemal pewien ze klawiature ma typowa - innych po prostu nie
ma, a "do XT" zniknely wiele lat temu.
Moze jakies opoznienie w programie ? Odebrales F0, teraz cos tam
wykonujesz, i nastepny kod ginie ?

Zgadza się. Klawiatura działa OK, szwankuje procedura. Atmelowa procedura
obsługi przerwania napisana jest dla kompilatora IAR. Nie wiem, czy działa
poprawnie, ponieważ nie mam kompilatora IAR. Jest ona trochę
"przekombinowana" - nie wiem czemu. W Internecie krąży przeróbka tej
procedury przystosowana do składni avrgcc i ona właśnie mi nie działała.
Przerobiłem ją teraz wg mojego uznania i zaczęło działać!
Mam uC AT90S8535 _at_nospam_ 3.6864MHz. Atmel w nocie nie podaje zegara. Być może IAR
generuje szybszy kod.

Poniżej przerobiona procedura - może się komuś przyda. Nie jest może
idealna, ale bardziej przejrzysta no i "lepiej" działa ;-)

SIGNAL(SIG_INTERRUPT0)
{
static unsigned char data; // Holds the received scan code

bitcount++;
if (bitcount > 1 && bitcount < 10) // bity danych z klawiatury
{
data >>= 1;
if (bit_is_set(PIND,PD7)) data |= 0x80;
}
else
if (bitcount == 11) // w 11-tym bicie...
{
decode(data);
bitcount = 0;
}
}


--
Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/~sp9zcj/
e-mail: mike2001 (małpa) tlen.pl



Poprzedni Następny
Wiadomość
Spis treści
From: Badworm <kwormerSYF_at_nospam_wp.pl>
Subject: Re: Obsluga klawiatury PC na uC
Date: Sun, 31 Mar 2002 14:45:50 +0200


"Michał Lankosz" wrote:
Mam mały problemik z czytaniem klawiatury PC-towej na uC. Chodzi o to, że
w/g opisu na Beyond Logic cytuję:
<ciach>
Ma ktoś może jakieś sposoby lub opisy? Może ja mam jakąś nietypową
klawiaturę?
U mnie na stronie masz niezłe FAQ nt. klawiatury AT i XT. A jak
chcesz, to mogę ci dać linka do strony z procedurą odczytu klawiatury
AT w Bascomie.

--
Pozdrawiam Bad Worm __ _
http://www.gusnet.prv.pl<_ / |_>
Tnijcie cytaty! <_ //\|\
Usuń SYF z mojego adresu/remove SYF from my adress