Po pierwsze, pewnie Ci zaraz uwagę zwrócą ze kod umieszczamy w listingu "syntax c" wiec spróbuj poprawić szybciej, hehe
Twój kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Na początku masz definicje pre-procesora, które ułatwiają i skracają wpisywanie poszczególnych pinów i portów w kodzie. Wszystkie przyciski muszą byc ustawione jako wyjscia, domyślnie po resecie same się ustawiają ale dla zasady dobrze jest pisać zeby łatwiej potem rozumieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Poprzez DDRx - ustawiasz kierunek portu wejście
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czy wyjscie
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Poprzez PORTx - ustawiasz podciągniecie rezystora wewnętrznego, inaczej byś to musiał robić poprzez fizyczne podciąganie - tak jest łatwiej.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
bez podciągnięcia,
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
podcigniecie do VCC.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zastosowna jest tu maska bitowa, warunek w nawiasie sprawdza stan tylko i wyłącznie na pinie PRZYCISK_PIN, dzieki temu na pozostałych pinach mozesz sobie pod pin co chcesz i nie maja wpływu na klawisz. "!" to negacja, czyli w instrukcji warunkowej, np. "if" bedzie sprawdzane czy cos nie jest "prawdą" - w tym przypadku czy jest stan niski na pinie - bo wcisniety klawisz do masy daje stan logiczny "0" na pinie uC.
------------
Mirek mnie wyprzedził ; P