Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 mar 2025, o 22:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 15 sie 2014, o 18:08 
Offline
Użytkownik

Dołączył(a): 15 sie 2014
Posty: 87
Pomógł: 0

Mam problem ze zrozumieniem jednej linijki kodu, a bardziej operacji na poszczególnych bitach. Chodzi o obsługę klawiszy typu micro-switch. Jestem początkujący dlatego proszę o zrozumienie. Chodzi mi o fragment: !(PINB & PRZYCISK_PIN).



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


Wnoskuję że (1<<PB2) można zapisać na ośmiu bitach jako: 0000 0010 , pojawia sie iloczyn logiczny czyli operacja wykona się pomiędzy (1<<PB2) a PINB. Nie za bardzo wiem jak rozpisać PINB. Generalnie chodzi o operacje na bitach i wyjaśnienie "idei" tego jak działa sprawdzanie stanu niskiego poprzez operacje na tych bitach.



Ostatnio edytowano 15 sie 2014, o 18:20 przez moscow18-1990, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 18:13 
Offline
Użytkownik

Dołączył(a): 20 mar 2012
Posty: 159
Pomógł: 6

Witaj listingi kodu wstawiaj zgodnie z tym co masz w edytorze.
Wszystko opisane tutaj http://forum.atnel.pl/topic7402.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 18:17 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27361
Lokalizacja: Szczecin
Pomógł: 1042

moscow18-1990 napisał(a):
Nie za bardzo wiem jak rozpisać PINB. Generalnie chodzi o operacje na bitach i wyjaśnienie "idei" tego jak działa sprawdzanie stanu niskiego poprzez operacje na tych bitach.


oglądaj poradniki na moim blogu a szczególnie ten:

http://mirekk36.blogspot.com/2014/05/if ... -o-co.html


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 18:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Po pierwsze, pewnie Ci zaraz uwagę zwrócą ze kod umieszczamy w listingu "syntax c" wiec spróbuj poprawić szybciej, hehe
Twój kod:

Składnia: [ Pobierz ] [ Ukryj ]
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.

Składnia: [ Pobierz ] [ Ukryj ]
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
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czy wyjscie
Składnia: [ Pobierz ] [ Ukryj ]
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.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
bez podciągnięcia,
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
podcigniecie 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.

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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2014, o 19:58 
Offline
Użytkownik

Dołączył(a): 15 sie 2014
Posty: 87
Pomógł: 0

Właśnie link do tego poradnika naprowadził mnie na sedno sprawy. Obejrzałem jeszcze poradnik Pana Mirosława o maskowaniu i już wszystko jest dla mnie jasne. Dziękuje też za objaśnienia. I tak w ogóle poradniki w połączeniu z niebieską książką są świetną sprawą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO