float, Pic16f877 i C

Loading thread data ...
Reply to
invalid unparseable

Dodac rzutowanie i nie bedzie ostrzezenia.

Nie prosciej memcpy(&moja_zmienna, tablica, sizeof(moja_zmienna)); Petla moze byc wskazana jesli np. nie zgadza sie kolejnosc bajtow.

Tyle to zadziala o ile format tego transmitowanego floata zgadza sie z formatem stosowanym w bibliotece. Sa jakies standardy wiec spora szansza ze zadziala.

Krzysiek Rudnik

Reply to
Krzysztof Rudnik
Reply to
invalid unparseable

Najprosciej float bufor = x; // przypisanie wartosci unsigned char *ptr = (unsigned char *)&bufor; ptr[0...3] - poszczegolne bajty float

Inna metoda - przez unie (nie gwarantuje poprawnosci) union zbiorek { float float_value; unsigned char char_value[sizeof(float)]; };

i deklaracja union zbiorek test

test.float_value = 14.47; // przypisanie wartosci flaot test.char_value[1...3] - wartosci poszczegolnych bajtow flaot.

Na wszelki wypadek zaznacze (nie jestem pewny co chcesz uzyskac) - w ten sposob nie uzyskasz "czytelnej dla czlowieka" wartosci !!!

W tym przypadku oznacza to tylko tyle ze memcopy gwarantuje ze nie zmieni zawartosci drugiego argumentu.

GRG

Reply to
Gregor

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.