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

[Atmega16] [c] klawiatura marycowa 4x4

06 Cze 2012 11:01 2407 4
  • 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]
  • 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.
  • Poziom 18  
    Brak opóźnienia między ustawieniem stanu kolumn, a odczytem stanu wierszy.
  • 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
  • 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ć.