| Author |
Message
|
vayo Poziom 7

Joined: 06 Nov 2004 Posts: 24 Location: Szczecin
|
#1
23 May 2006 19:02 Bascom 8051 -Waitkey() i przyciski |
|
|
|
Witam,
napisałem program w Bascom-8051 na AT89C55WD, którego główna pętla wygląda tak:
Do
C = Waitkey()
If C = 13 Then Call Enter
If C = 65 Then Call Gora
If C = 66 Then Call Dol
If C = 67 Then Call Prawo
If C = 68 Then Call Lewo
Loop
czyli czeka na wcisnięcie odpowiednich przycisków na konsoli. Teraz chciałbym dołączyć bezpośrednio do mikrokontrolera pod wolne nogi cztery przyciski za pomocą których mógłbym wywoływać podprogramy: Gora, Dol, Prawo i Lewo lecz nie mam pomysłu jak to oprogramować. Proszę o jakieś sugestie, dodam, że nie mogę niczym innym zastąpić Waitkey().
pozdrawiam
vayo
|
|
| Back to top |
|
 |
Google

|
#
23 May 2006 19:02 |
|
|
|
|
|
| Back to top |
|
 |
zumek Poziom 23

Joined: 08 Oct 2003 Posts: 3122 Location: Włocławek
|
#2
23 May 2006 19:11 Re: Bascom 8051 -Waitkey() i przyciski |
|
|
|
| vayo wrote: |
...
Proszę o jakieś sugestie, dodam, że nie mogę niczym innym zastąpić Waitkey().vayo |
No to uziemiłeś proca na amen , a do odczytu klawiszy lokalnych , pozostały Ci przerwania.Powiedz , dlaczego musisz Waitkey() , a nie np. Inkey ??
Piotrek
|
|
| Back to top |
|
 |
Google

|
#
23 May 2006 19:11 |
|
|
|
|
|
| Back to top |
|
 |
vayo Poziom 7

Joined: 06 Nov 2004 Posts: 24 Location: Szczecin
|
#3
23 May 2006 19:30 Re: Bascom 8051 -Waitkey() i przyciski |
|
|
|
| zumek wrote: |
...
Powiedz , dlaczego musisz Waitkey() , a nie np. Inkey ??
|
Dla tego, że Inkey nie działa tak jak bym chciał. Program rysuje mi na konsoli w trybie znakowym okienka i poruszam się po nich za pomocą strzałek kursora. kod strzałek kursora w terminalu jest następujący:
strzałka w górę to znak klawisza "ESC"+"[" + "A"
strzałka w dół to znak klawisza "ESC"+"[" + "B"
strzałka w prawo to znak klawisza "ESC"+"[" + "C"
strzałka w lewo to znak klawisza "ESC"+"[" + "D"
Nie wiedziałem jak wykryć wciskanie tych klawiszy (trzy znaki na klawisz) więc wpadłem na pomysł, że sprawdzany będzie tylko ostatni znak z trzech nadawanych i metodą prób i błędów okazało się, że poprawnie (według mojego rozumowania ;) ) interpretuje to tylko komenda Waytkey().
pozdrawiam
vayo
|
|
| Back to top |
|
 |