- posted
19 years ago
float, Pic16f877 i C
- Vote on answer
- posted
19 years ago
- Vote on answer
- posted
19 years ago
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
- Vote on answer
- posted
19 years ago
- Vote on answer
- posted
19 years ago
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
- Vote on answer
- posted
19 years ago