Port B jest ustawiony jako wejście, D jako wyjście.
Czemu poniższy kod nie działa?
Kod: Zaznacz cały
if (PINB1)
cbi(PORTD,2);
else
sbi(PORTD,2);
Kod: Zaznacz cały
if (PINB&2)
cbi(PORTD,2);
else
sbi(PORTD,2);
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięModeratorzy:Jacek Bogusz, procesorowiec, r-mik, Moderatorzy
Kod: Zaznacz cały
if (PINB1)
cbi(PORTD,2);
else
sbi(PORTD,2);
Kod: Zaznacz cały
if (PINB&2)
cbi(PORTD,2);
else
sbi(PORTD,2);
AvrGcc nie wspiera operacji na pojedynczych bitach; więc właśnie tak jak zrobiłeś - przez iloczyn logiczny z maską. Można to obchodzić różnego rodzaju makrami ale IMHO to kwestia po prostu przyzwyczajenia
W ogóle jak najprościej odczytać stan pojedynczego pinu na porcie np. B?
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości