Znak | to inaczej suma logiczna (OR). Zobacz tablelę prawdy np. tutaj:
http://www.jeybi.republika.pl/cyfra2_funktory_logiczne.htmlWynika 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ż:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to to samo co:
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:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.