Witam,
Ostatnio uczyłem się pisać w BASCOM-ie ale postanowiłem, że będę się jednak uczył w C.
I mam problem w zrozumieniu tego warunku:
Próbowałem sam sobie wytłumaczyć i doszedłem do takiego wniosku:
Jeżli PORTC mam skonfigurowany w ten sposób:
to w tej części tego warunku "PINC & 0x01" PINC jest równy 1 (bo taka była konfiguracja tego pinu) a 0x01 w przeliczeniu też jest równe 1.
Czyli wynik mnożenia "PINC & 0x01" jest równe 1 (większe od zera) to całe wyrażenie (!(PINC & 0x01)) będzie wtedy równe zero (bo jest operator negacji na początku).
Czyli z tego wychodzi, że aby ten warunek działał to w tym miejscu "(PINC & 0x01)" wartość musi być większa od zera?
Tak samo i ten:
PINC = 1
0x02 = 2, czyli z mnożenia wychodzi 2 (czyli jest większe od zera i też będzie wykonany warunek).
Przyciski na płytce testowej mam podłączone do PC0 i PC1 i do masy.
Czyli warunek ma reagować na stan niski.
I dlatego tak jest operator negacji na początku?
Dobrze to rozumiem?
Czy nie?
Może trochę niezrozumiale napisałem, ale myślę że zrozumiecie mnie.
Pozdrawiam.
Ostatnio uczyłem się pisać w BASCOM-ie ale postanowiłem, że będę się jednak uczył w C.
I mam problem w zrozumieniu tego warunku:
Kod: text
Próbowałem sam sobie wytłumaczyć i doszedłem do takiego wniosku:
Jeżli PORTC mam skonfigurowany w ten sposób:
Kod: text
to w tej części tego warunku "PINC & 0x01" PINC jest równy 1 (bo taka była konfiguracja tego pinu) a 0x01 w przeliczeniu też jest równe 1.
Czyli wynik mnożenia "PINC & 0x01" jest równe 1 (większe od zera) to całe wyrażenie (!(PINC & 0x01)) będzie wtedy równe zero (bo jest operator negacji na początku).
Czyli z tego wychodzi, że aby ten warunek działał to w tym miejscu "(PINC & 0x01)" wartość musi być większa od zera?
Tak samo i ten:
Kod: text
PINC = 1
0x02 = 2, czyli z mnożenia wychodzi 2 (czyli jest większe od zera i też będzie wykonany warunek).
Przyciski na płytce testowej mam podłączone do PC0 i PC1 i do masy.
Czyli warunek ma reagować na stan niski.
I dlatego tak jest operator negacji na początku?
Dobrze to rozumiem?
Czy nie?
Może trochę niezrozumiale napisałem, ale myślę że zrozumiecie mnie.
Pozdrawiam.