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
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 / C++