ATNEL tech-forum
https://forum.atnel.pl/

Proszę o pomoc - pierwszy przykład z książki... :)
https://forum.atnel.pl/topic22780.html
Strona 1 z 1

Autor:  Wójcik Robert [ 8 sty 2020, o 21:24 ]
Tytuł:  Proszę o pomoc - pierwszy przykład z książki... :)

Jak widać jestem całkowicie początkujący, ale zapytam.

Pierwszy przykład z książki, przerabiam go sobie i chce zrobić klawisze pod różnymi portami.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Próbowałem zmieniać
if (! (PINC&klawisz) ) na if (! ((PINC|PIND)&klawisz) ) i zero odzewu, wrażenia jakby cały czas był sygnał na PD6. Robiłem już kilkanaście przeróbek których nie przytaczam, ale bez efektu.

Sorki, ale jestem chyba tępy lub leniwy, chociaż spędziłem nad tym już trochę czasu.

Jakieś sugestie?

Z góry dziękuje.

Autor:  Adam12 [ 9 sty 2020, o 00:19 ]
Tytuł:  Re: Proszę o pomoc - pierwszy przykład z książki... :)

To nie taki banalny problem jakby się na pierwszy rzut oka zdawało. Przyznam się, że chwilę musiałem pomyśleć czemu to nie działa.

Problem jest w tym, że sprawdzasz stan portu D używając maski klawisza (zmienna "klawisz") z portu C i na odwrót. Tak nie można robić bo jeśli chcesz sprawdzić stan klawisza K3 to tak naprawdę sprawdzasz też stan pinu PC6. Jeśli na tym pinie jest stan niski (a tak jest w tym wypadku) to tak jakby klawisz był cały czas wciśnięty. Możesz to sprawdzić podciągając piny do VCC:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Problem można rozwiązać badając stan danego portu używając masek dotyczących tylko tego portu. Można na przykład dodać do funkcji "klawisz_wcisniety" drugi argument, podając na którym porcie sprawdzamy klawisz.

Na przykład:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Można też w sposób bardziej zaawansowany, przekazując jako drugi argument adres odpowiedniego portu (identycznie jak w funkcji SuperDebounce z BB):

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Wójcik Robert [ 26 lut 2020, o 21:33 ]
Tytuł:  Re: Proszę o pomoc - pierwszy przykład z książki... :)

Serdecznie dziękuję za pomoc :)

Jakby co kod działa, jest poniżej

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  mirekk36 [ 26 lut 2020, o 21:45 ]
Tytuł:  Re: Proszę o pomoc - pierwszy przykład z książki... :)

Robert - nie zatrzymuj się na tym - to jest tylko BARDZO ale to BARDZO POGLĄDOWY przykład - aby zrozumieć w ogóle jak i o co chodzi z przyciskami - czytaj dalej książkę bo tam będą dużo lepsze i bardziej zaawansowane przykłady - np funkcja SuperDebounce(). Ale z kolei gdyby ta była za trudna - to sięgaj też do mojego bloga i przed nią ZAPOZNAJ się DOKŁADNIE z tym artykułem:

http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

i oglądaj moje poradniki wideo uzupełniające do książek na kanale youtube mirekk36 ;)

Autor:  Wójcik Robert [ 27 lut 2020, o 17:37 ]
Tytuł:  Re: Proszę o pomoc - pierwszy przykład z książki... :)

temu tu jestem i zadaje pytania...

Dzięki. :)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/