no ale dziwisz się ? a nie widzisz przykładów jak ci wyżej napisałem ???? coś nie rozumiem o co teraz tobie chodzi
toż same błędy w tym kodzie porobiłeś
uint8_t bufor[1]; czyli zdefiniowałeś bufor z JEDNYM TYLKO elementem a później chcesz pakować do niego dwa elementy ??? no jak to ? - toż jak chcesz wpakować do niego 2 alementy to weź że zdefiniuj bufor 2 elementowy
Kod:
uint8_t bufor[2];
to po pierwsze
a po drugie ......
oczywiście warning może się pojawić bo próbujesz zapakować wartość 16-bitową do elementu 8-bitowego i kompilator daje ostrzeżenie pytając czy na pewno wiesz co robisz ? ... żeby zamknąć mu usta wystarczy napisać:
Kod:
bufor[0] = (uint8_t)0x8100;
bufor[1] = (uint8_t)0x8100 >> 8;
czyli robisz jawne rzutowanie
ale z drugiej strony - jeśli twoje komendy są dwubajtowe to co za kłopot napisać to tak?
Kod:
bufor[0] = 0x00;
bufor[1] = 0x81;
no i teraz żadnego warninga a słowo 2 bajtowe sam ręcznie rozdzieliłeś na dwa bajty - młodszy i starszy - widzisz to ?
nie wiem np jeśli taka komenda miałaby mieć nazwę np (strzelam VOL_UP) to ja bym sobie zrobił tak:
Kod:
uint8_t vol_up[2] = { 0x00, 0x81 };
i wysłał za pomocą funkcji z książki bufor o nazwie vol_up o długości 2 bajtów i masz wysłaną jakąś tam komendę, a dzięki takiemu zapisowi możesz sobie zdefiniować ładnie w kodzie wiele takich komend, no tu możliwości jest mnóstwo
ale podejrzewam, że troszkę skoczyłeś na głęboką wodę bez kamizelki ratunkowej - bo nie ogarniasz jeszcze to znaczy za mało poćwiczyłeś i rozumiesz w ogóle tablice w języku C - więc co chwilę będziesz miał problem - jednak TABLICE to podstawa! sam widzisz na powyższym przykładzie.
_________________
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 ]