Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Klawiatura matrycowa 4x4 bascom avr - konfiguracja portów

Roman Szemik 14 Lut 2011 19:37 3047 10
  • #1 14 Lut 2011 19:37
    Roman Szemik
    Poziom 14  

    Witam.
    O klawiaturze trochę przeczytałem na forum lecz nie znalazłem odpowiedzi na moje pytanie dotyczące konfiguracji portów.

    Korzystam z portu B i tam też podpinam klawiaturę matrycową 4x4. Po konfiguracji

    Configkbd = portB
    portB=&B????????

    dim X as byte

    do
    X=getkbd()
    loop

    nie wiem które piny portu są wejściami, które wyjściami i ewentualnie które należało by podciągnąć do góry za pomocą zewnętrznych i wewnętrznych rezystrów aby nie otrzymywać dziwnych stanów.

    Spotkałem się z różnymi sprzecznymi informacjami i jestem zbity z tropu. W bascom helpie też tego nie znalazłem.

    Pozdrawiam

    0 10
  • #2 15 Lut 2011 15:59
    netotron
    Poziom 26  

    Witam
    Wszystko masz rozrysowane i opisane razem z działającym przykładem
    BASCOM-AVR IDE 1.11.9.8 -> Help index -> GETKBD
    prościej się nie da :)
    pozdrawiam

    0
  • #3 16 Lut 2011 08:05
    Roman Szemik
    Poziom 14  

    Witam.

    Odnośnie portów to tylko to co poniżej znalazłem w helpie 1.11.9.8 Jak dla mnie to nie widzę tutaj które piny portu X są wejściami a które wyjściami i które jak należy zadeklarować jeśli chodzi o podciągnięcie do plusa lub do minusa. Możliwe że o tak wczesnej porze człowiek coś mimowolnie przeoczył , chyba że kolumny z urzędu są wejściami lub wyjściami. To próbuję ustalić na 100% i uważać to za świętość.

    CONFIG KBD = PORTx , DEBOUNCE = value , rows=6, row5=pinD.6, row6=pind.7

    Pozdrawiam.

    0
  • #4 16 Lut 2011 10:36
    netotron
    Poziom 26  

    Witam
    GETKBD() samo dba o stany na pinach, sprawdzany jest stan 0 jeśli Ci to coś
    pomoże. Po sprawdzeniu klawiatury porty są zwalniane i mogą być wykorzystane.
    A tak ma marginesie porty mają trzy stany, nie dwa :)
    pozdrawiam

    0
  • #6 16 Lut 2011 14:28
    Roman Szemik
    Poziom 14  

    Pomysł na podciąganie wziąłem z praktyki (atmega128 / 16MHZ). Nie wiem dlaczego ale gdy nie ustawiam portów jako wyjścia lub wejścia to przy naciskaniu klawiatury czasami zdaży mi się iż co innego zostanie wybrane. Po spróbowaniu i skonfigurowaniu portów 4-ech wyjściowych i 4-ech wejściowych niekontrolowane stany zmniejszyły się o 80%. Oczywiście kombinacja wejść i wyjść była różna tak jak i podciąganie wejść lub wyjść. Z praktycznego punktu widzenia nie zdołałem ustalić najwłaściwszego rozwiązania dla konfiguracji portów, dlatego szukam pewnego rozwiązania. Nadmienie iż obok taśmy z klawiatury "leci" taśma do wyświetlacza i tego się nie da zmienić. Próbowałem również po konfigkbd dołożyć delay 100 lecz nie zauważyłem widocznej poprawy z wyjątkiem opóźnienia działania programu.

    Pozdrawiam.

    0
  • #7 16 Lut 2011 14:34
    piotrva
    Moderator na urlopie...

    a czy przypadkiem problem nie jest spowodowany wciśnięciem paru klawiszy na raz??
    ja robiłem taką klawiaturę na pająka i działała bez zarzutów, nawet położona obok telefonu komórkowego lub zasilacza...
    a czy przypadkiem taśma nie jest uszkodzona?
    jeśli możesz to załącz jakieś foto, bo to zachowanie conajmniej dziwne...
    ja to testowałem na atmega644p osc=16MHz

    0
  • #8 17 Lut 2011 14:00
    netotron
    Poziom 26  

    Witam
    Zaczynam rozumieć... ufff nie trzeba było tak od razu :)

    Cytat:
    Pomysł na podciąganie wziąłem z praktyki (atmega128 / 16MHZ). Nie wiem dlaczego ale gdy nie ustawiam portów jako wyjścia lub wejścia to przy naciskaniu klawiatury czasami zdaży mi się iż co innego zostanie wybrane. Po spróbowaniu i skonfigurowaniu portów 4-ech wyjściowych i 4-ech wejściowych niekontrolowane stany zmniejszyły się o 80%. Oczywiście kombinacja wejść i wyjść była różna tak jak i podciąganie wejść lub wyjść

    Weź pod uwagę, że to co dla Ciebie jest wciśniętym klawiszem, dla elektroniki już nie.
    Jest coś takiego jak migotanie styków. Jeśli bierzesz się za "ręczną" obsługę klawiatury, musisz zadbać o odpowiednie warunki sprawdzania stanu klawisza np. Instrukcja DEBOUNCE lub odczekać. Tylko po co zapytam jak masz gotowca
    GETKBD ?

    0
  • #9 18 Lut 2011 11:35
    Roman Szemik
    Poziom 14  

    Witam.

    Jeśli chodzi o wykonanie klawiatury matrycowej to 16-cie przycisków jest wkręconych w poliwęglan i w miarę dobrze przylutowane, natomiast jeśli chodzi o wykorzystanie gotowca to owszem getkbd ma przy konfiguracji debounce i w moim przypadku jest ustawione na maksimum czyli 250 i pomimo tego czasami dziwnie się zachowuje. Zauważyłem następujący fakt. Po zamianie kwarcu z 16 na 4 MHz te zakłócenia występują rzadziej, aczkolwiek wolał bym pracować na częstotliwości ile fabryka dała.

    Pozdrawiam.

    0
  • #11 18 Lut 2011 11:47
    Roman Szemik
    Poziom 14  

    W domu będę około 20 - tej i wtedy poślę materiały.

    Pozdrawiam.

    0