robiw napisał(a):
Zapis (PIND&(1<<PD2)) nie daje przecież wartości 1 czy 0 tylko inną w zależności czy użyjemy PD2, PD3 czy jeszcze innej, więc nie da sie tego zapisu podstawić tak po prostu zamiast jedynki "1" po prawej stronie, czyli (1<<Index).
A właśnie że się da - bo w C to jest jednoznaczne TRUE albo FALSE
i to jest właśnie piękne w C - a nie uświadczysz tego za bardzo w innych językach ...
chyba że źle opisałeś swoje potrzeby
w każdym razie nie ważne czy będzie tak:
if( PIND & (1<<PD2) )
czy tak
if( PIND & (1<<PD3) )
zawsze warunek będzie spełniony zero jedynkowo, czyli albo TRUE albo FALSE nie ważne czy wynikiem wyrażenia w warunku będzie 2,4,8, czy 128 - to zawsze będzie TRUE , a zawsze gdy będzie 0 to będzie FALSE
a od tego już niedaleka droga do użycia ciut bardziej złożonej instrukcji warunkowej
? :
aby pozbyć się IF'a
_________________
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 ]