Zamiana bitów

0

Witam, jestem początkującym 'programistą' w języku C i nie wiem do końca jak dobrze zrobić takie zadanie:

"Dla pewnej, istniejącej kombinacji 8-miu diod LED podłączonych do PORTA, zamień kolejność 8-miu bitów(tak, by bity PA0, PA1...PA7 zamieniono na PA7, PA6...PA0)."

Myślałem, że tak:
PA0|=(1<<PA7);
PA1|=(1<<PA6);
PA2|=(1<<PA5);
PA3|=(1<<PA4);
PA4|=(1<<PA3);
PA5|=(1<<PA2);
PA6|=(1<<PA1);
PA7|=(1<<PA0); , ale raczej na pewno nie. Chciałbym prosić o pomoc, bo wiem, że to jest proste, a nie umiem wpaść na rozwiązanie. ;/

0

czy nie da się całej zawartości wpisać do bajtu: uint8_t x=...;

0

No w Twoim rozwiązaniu gubisz wartości z bitów PA0...3.
Możesz zapisać wszystkie bity do zmiennej jak zaproponowano powyżej i zrobić 'odbicie lustrzane' względem środka, albo zapisać bity od 0 do 3, zapisać do nich bity 7 do 4 i te zapisane wcześniej bity wstawić do bitów 7 do 4.

0

Dzięki za pomoc. Już wiem jak to zrobić ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1