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

[Atmega8][C/Eclipse]Klawiatura matrycowe 4x3, 3 przyciski nie odpowiadają

lycon5 15 Mar 2012 19:38 1322 2
REKLAMA
  • #1 10681822
    lycon5
    Poziom 11  
    Witam ! zakupiłem sobie ostatnią taką klawiaturę matrycową i wszystko szło pięknie do czasu nie wyjaśnionych błędów w działaniu. Napisałem sobie taką funkcję która ma sprawdzać który z przycisków został wciśnięty i zatrzasnąć program do czasu jego puszczenia
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    w while-u programu głównego robię coś takiego
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Od razu widać jak ma to działać. Jeśli zostanie wciśnięty i następnie puszczony jakikolwiek klawisz ma zaświecić się na chwilkę dioda. Rzecz w tym, że wszystko działa oprócz trzech klawiszy. 4,7 oraz znaku "*". Klawisz 1 działa normalnie.
    Liczę, że ktoś spojrzy na to świeżym okiem ;)



    // edit
    Zauważyłem dziwną rzecz. Gdy badam opór przy wciskaniu klawiszy, wszystko jest ok. Ale gdy postanowiłem zbadać napięcie na wierszach odkryłem coś ciekawego. Przy wciśnięciu klawiszy 4,7 i "*" napięcie nie spada podczas gdy na wszystkich innych dzieje się tak jak trzeba. Gdyby nie działał klawisz "1" oskarżyłbym pewnie przewód od pierwszej kolumny. Czy to możliwe, że klawiatura została uszkodzona ?

    Dodano po 1 [godziny] 8 [minuty]:

    Po dwóch godzinach walki doszedłem o co chodzi. Dla innych, po ustawieniu niskiego stanu na wierszu trzeba odczekać 1ms żeby zdążył ustalić się stan ;) 2 godziny nie moje...
  • REKLAMA
  • #2 10682305
    janbernat
    Poziom 38  
    Twoje, Twoje.
    Wydaje Ci się że rozwiązałeś problem.
    Nie masz żadnego debouncingu do sprawdzania klawiszy.
  • #3 10685753
    lycon5
    Poziom 11  
    Słuszna uwaga, jednak po pozbyciu się wczoraj błędów ani razu nie zdarzyło się tak ażeby jakiś klawisz "wstukał się" kilka razy. Pętla while() widać załatwia sprawę :)
REKLAMA