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

Jak przekształcić program Bascom z klawiatury 2x2 na 4x4? Zerowanie kolumn

Kamus 14 Gru 2007 13:53 5497 6
REKLAMA
  • #1 4586509
    Kamus
    Poziom 12  
    Posty: 93
    Ocena: 3
    Witam.Mam problem ze zrobieniem klawiatury matrycowej 4x4.Czy moglibyście mi pomóc przekształcić ten program na klawiaturę 4x4.Wcześniej program ten obsługiwał klawiaturę 2x2 i częściowo został przerobiony przeze mnie na 4x4.Utkwiłem w zerowaniu kolumn.Dopiero niedawno zacząłem bawić sie w te klocki,ale podstawy języka znam.Program jest w załączniku
    Załączniki:
    • matryca.txt (1.37 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 4586583
    Jaduda
    Poziom 32  
    Posty: 1355
    Pomógł: 235
    Ocena: 196
    A nie prościej użyć gotowej funkcji "GETKBD" ?
  • REKLAMA
  • #3 4586643
    Kamus
    Poziom 12  
    Posty: 93
    Ocena: 3
    Hmm.Tej komendy wogóle nie znam.Nawet w książce z której próbuję sie uczyć nie ma o niej zdania.A mógłbyś mi coś powiedzieć na temat tej komendy tj jak trzeba ją wykorzystać?
  • REKLAMA
  • #4 4587346
    Jaduda
    Poziom 32  
    Posty: 1355
    Pomógł: 235
    Ocena: 196
    Ściągnij sobie tego PDF-a i zobacz CONFIG KBD (s. 147) i GETKBD (s. 230).
  • #5 4587724
    Kamus
    Poziom 12  
    Posty: 93
    Ocena: 3
    Czyli teraz jak napisze taki program to będzie to działać:
    $crystal = 8000000
    $regfile = "m8def.dat"
    Config Kbd = Portb , Delay = 100
    Dim A As Byte
    Do
    A = Getkbd()
    Print A
    Loop
    End
  • REKLAMA
  • #6 4588090
    Jaduda
    Poziom 32  
    Posty: 1355
    Pomógł: 235
    Ocena: 196
    Tak. Powyższy program będzie działać.
    W zmiennej A będziesz miał numer naciśniętego klawisza.
  • #7 4589389
    Kamus
    Poziom 12  
    Posty: 93
    Ocena: 3
    Mam jeszcze jedno pytanie.Zrobiłem na 4 pierwszych liniach portu a rejestr przesówny.Impulsy tego rejestru przechodzą potem do przełącznika który tworzy dzięki diodom stany binarne na 4 następnych liniach portu.Chciałbym aby jak np na pierwszym pinie rejestru przesównego był stan wysoki to aby 4 linie portu odczytywały ten stan binarny.Myślę że trzeba to zrobić na nieskończonej pętli Do....Loop a w niej wstawić instrukcję warunkową If....Then tylko nie mam pomysłu jak to dokładnie napisać.Schemat przykładowy zamieszczam w załączniku(na schemacie rejestr przesówny wchodzi do bramek tranzystorór a potem dopiero do przełączników)
    Załączniki:
    • Jak przekształcić program Bascom z klawiatury 2x2 na 4x4? Zerowanie kolumn skanuj0035.jpg (494.28 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Dyskusja dotyczy problemu przekształcenia programu w Bascom z obsługi klawiatury matrycowej 2x2 na 4x4, ze szczególnym uwzględnieniem kwestii zerowania kolumn. Autor programu ma trudności z implementacją i prosi o pomoc. W odpowiedziach zasugerowano użycie wbudowanej funkcji GETKBD oraz konfiguracji CONFIG KBD, które upraszczają obsługę klawiatur matrycowych. Podano przykład programu wykorzystującego te funkcje, działający na mikrokontrolerze Atmega8 (plik m8def.dat). Autor dodatkowo pyta o implementację odczytu stanów z rejestru przesuwnego sterującego przełącznikami, gdzie sygnały binarne z rejestru mają być odczytywane na liniach portu. Sugerowano zastosowanie pętli Do...Loop z instrukcjami warunkowymi If...Then do monitorowania stanów pinów rejestru przesuwnego. Wskazano również na dokumentację PDF Bascom, gdzie opisane są funkcje CONFIG KBD i GETKBD, co może pomóc w dalszym rozwoju programu.
Wygenerowane przez model językowy.
REKLAMA