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.

ATMEGA8 - Klawiatura analogowa i Timery programowe

malina555 17 Mar 2015 17:44 804 3
  • #1 17 Mar 2015 17:44
    malina555
    Poziom 14  

    Witajcie. Ostatnio zmagam się z obsługą klawiaturki analogowej składającej się z 3 klawiszy. Poradziłem sobie z uruchomieniem ADC na ATmedze8 i zrobiłem sobie 2 Timery programowe . Teraz próbuje zgodnie z przedstawioną przez Mirka (w filmach z cyklu "Przetwornik ADC - część 06") koncepcją zrobienia repeat klawiszy.

    https://www.youtube.com/watch?v=BdCCe6XOpUQ

    Według programu klawisze keys[0] i keys[2] mają działać tak samo na tej samej diodzie LED a jest następująco:

    Niestety przytrzymanie klawisza keys[0] powoduje dziwne działanie tzn. nie zawsze klawisz przełącza diodą na stan przeciwny (przy kliknięciu dioda mignie i zostaje w tym samym stanie), jeśli się kilka razy kliknie to udaje się zmienić stan LED.

    Natomiast keys[2] działa bardzo dobrze (każde kliknięcie zmienia stan diody na przeciwny).

    Co do keys[1] to dioda wchodzi w stan migania i tak jak u Mirka po wyłączeniu pozostaje w przypadkowym stanie.

    Niestety przytrzymanie dowolnego z klawiszy nie powoduje zadziałania funkcji repeat.

    Próbowałem wyświetlić wartości zmiennych keys[i], i niby podczas przytrzymania mają wartość 35. Ale efektu repeat brak.

    Może ktoś wie co robię nie tak. Już nie mam pomysłów :(


    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 3
  • #3 17 Mar 2015 19:17
    malina555
    Poziom 14  

    Jedną literówkę udało mi się znaleźć...ale to niestety nic nie zmieniło :/

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Mianowicie jest literówka ("cyferówka") w warunku pętli powinno być:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #4 17 Mar 2015 20:01
    Wirnick
    Poziom 26  

    Już w deklaracjach jest nieścisłość:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    keys[2] jest stale "naciśnięty".

    0