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.

[Atmega16] [c] klawiatura marycowa 4x4

luckas09 06 Cze 2012 11:01 2185 4
  • #1 06 Cze 2012 11:01
    luckas09
    Poziom 9  

    Napisałem program do obsługi klawiatury matrycowej. Podłączone diody LED wskazują binarnie wartość wciśniętego przycisku, a wyświetlacz LCD pokazuje szesnastkowo wciśnięty przycisk.
    Klawiatura podłączona do PORTD mikrokontrolera.
    [Atmega16] [c] klawiatura marycowa 4x4
    Problem w tym że wszystkie przyciski działają poprawnie oprócz jednego w czwartej kolumnie i pierwszym wierszu, wartość A w systemie szesnastkowym.
    Po wciśnięciu tego przycisku czasami oczytuje wartość 0x01, a czasami nie reaguje.
    [Atmega16] [c] klawiatura marycowa 4x4
    Podłączyłem do innego portu mikrokontrolera i był ten sam problem. Sprawdziłem połączenie przycisku do nóżki mikrokontrolera i było poprawne, także błąd musi być w kodzie programu.
    Proszę o sprawdzenie kodu.

    Kod: c
    Zaloguj się, aby zobaczyć kod
    [/code]

    0 4
  • #2 01 Cze 2013 18:29
    mirek1968
    Poziom 13  

    Zastosowałem twój program na mojej płytce testowej i mam identyczny problem w czwartej kolumnie w pierwszym wierszu.Co może być tego powodem,jeśli już się dowiedziałeś to proszę o info bo ja nadal nie wiem.

    0
  • #3 01 Cze 2013 18:50
    slx
    Poziom 18  

    Brak opóźnienia między ustawieniem stanu kolumn, a odczytem stanu wierszy.

    0
  • #4 01 Cze 2013 19:03
    tadzik85
    Poziom 38  

    Te fragmenty proponuje uprościć

    Kod: c
    Zaloguj się, aby zobaczyć kod


    a tu skorzystać ze zmiennej tymczasowej
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #5 02 Cze 2013 10:49
    mirek1968
    Poziom 13  

    Dodałem opóźnienia między ustawieniem stanu kolumn, a odczytem stanu wierszy i działa poprawnie.Mam jeszcze jedno pytanie jak zamienić teraz binarny wynik który pokazuje mi stan zaświeconych diód LED na system BCD.Poniżej dokładam fotkę części mojej płytki testowej z wyświetlaczami 2X4segmentowymi.

    [Atmega16] [c] klawiatura marycowa 4x4

    Wiem że troszkę odbiegłem od tematu głównego ale nie mogę sobie sam z tym poradzić.

    0