Witam wszystkich Aktualnie zczytuję z pewnego urządzenia pakiety danych po RSie do ATMegi
128. Dane są binarne i zawierają liczby 8,16 i 32 bitowe. Wszystko by było fajnie, gdyby to urządzenie pracowało w standardzie little-endian, a niestety tak nie jest. Tu mam takie pytanie, czy jest jakaś funkcja(operator), która z automata zamienia kolejność bajtów? Piszę tu, nie na pl.comp.lang.c, ponieważ AVR to 8 bitowiec i takie rzeczy mogą być bardziej specyficzne dla kompilatora avr-gcc. Właściwie funkcja to nie najlepszy pomysł, ale makro było by idealne wklejając wstawkę z assemblera. Przeszukałem google i oprócz informacji, że problem istnieje nie znalazłem właściwie nic. Obecnie robię to w ten sposób: Tworze strukturę danych z polami w odwrotnej kolejności niż w oryginale nadchodzą. Bufor przeznaczony na pakiet wypełniam od końca do początku. W ten sposób po przypisaniu zmiennej wskaźnikowej (typu struktury) adresu ostatniej komórki mogę bez problemu odwoływać się do poszczególnych pól poprzez: zmienna->pole16b; I to działa bez problemu, ale nie wydaje mi się to "estetycznym" rozwiązaniem. Może wyważam już otwarte drzwi? Jak wy do takiego problemu podchodzicie?Pozdrawiam