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

Klawiatura matrycowa 4x4 bascom avr - konfiguracja portów

Roman Szemik 14 Lut 2011 19:37 3461 10
REKLAMA
  • #1 9151747
    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
  • REKLAMA
  • #2 9155366
    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
  • #3 9158397
    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.
  • REKLAMA
  • #4 9158792
    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
  • #5 9159187
    piotrva
    VIP Zasłużony dla elektroda
    ja podłączam klawiaturę i nie muszę dodawać żadnego Config PortB = ... lub tym bardziej PortB = ...
    i przy nie wciśniętym klawiszu zwraca 16 (lub 24 przy matrycy 6*4), bez żadnego podciągania...
    skąd pomysł na podciąganie?
    używam bascom 1.11.9.8
  • #6 9159580
    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.
  • REKLAMA
  • #7 9159604
    piotrva
    VIP Zasłużony dla elektroda
    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
  • #8 9163958
    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 ?
  • REKLAMA
  • #9 9167818
    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.
  • #10 9167829
    piotrva
    VIP Zasłużony dla elektroda
    a mógłbyś załączyć zdjęcie i schemat??
    bo ja mam połączone przyciski drutami na płytce uniwersalnej z rezystorami na wyprowadzeniach i 0 zakłóceń przy 16 mhz...
  • #11 9167852
    Roman Szemik
    Poziom 14  
    W domu będę około 20 - tej i wtedy poślę materiały.

    Pozdrawiam.
REKLAMA