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



Teraz jest 6 kwi 2026, o 17:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 15 kwi 2015, o 13:58 
Offline
Nowy

Dołączył(a): 15 kwi 2015
Posty: 3
Pomógł: 0

Witam wszystkich przy moich początkach z językiem C.

Wybaczcie może absolutnie głupie pytanie, ale mam dwa kody i jeden działa, drugi nie. Nie mam pojęcia dlaczego...

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


Ten kod nie działa...

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

Ten natomiast działa jak należy.
Czy ktoś jest wstanie wyjaśnić dlaczego tak się dzieje??



Ostatnio edytowano 15 kwi 2015, o 14:10 przez MKarol89, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2015, o 14:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lip 2013
Posty: 420
Lokalizacja: Kraków
Pomógł: 17

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

_________________
GreenBook i BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2015, o 14:07 
Offline
Nowy

Dołączył(a): 15 kwi 2015
Posty: 3
Pomógł: 0

Owszem. Działa w ten sposób. Nie chodzi mi o gotowe rozwiązanie, a o próbę zrozumienia, dlaczego nie działa bezpośrednie wstawienie 0 (zera).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2015, o 14:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Znak | to inaczej suma logiczna (OR). Zobacz tablelę prawdy np. tutaj: http://www.jeybi.republika.pl/cyfra2_funktory_logiczne.html
Wynika z niej, że gdy obydwa wejścia a i b są równe zero to na wyjściu jest też zero, gdy któreś z wejść lub oba na raz są w stanie 1 to na wyjściu otrzymamy 1.
Myślę, że to jasne tak?
Teraz Twoim wejściem a będzie PORTB, a wejściem b (1<<PB0), a wyjściem będzie PORTB już po wykonaniu sumy logicznej.
Bo przecież:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to to samo co:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli y = a | b
Jeśli b = 1 no to obojętnie czy a było równe 0 lub 1 to na wyjściu i tak będzie 1
Jeśli b = 0 to przecież nic się nie zmieni na wyjściu, prawda? (zgodnie z tabelą prawdy sumy logicznej (OR))

Aby wyzerować dany bit na porcie stosuje się iloczyn logiczny (AND) w postaci:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 15 kwi 2015, o 14:46 przez anshar, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2015, o 14:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Może się przyda: http://mirekk36.blogspot.co.uk/2012/01/avr-porty-wewy-dir-podstawy.html



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 0 gości


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