Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 mar 2026, o 12:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 3 lis 2014, o 17:23 
Offline
Użytkownik

Dołączył(a): 29 maja 2012
Posty: 60
Pomógł: 0

Witam. Czujnik temp. daje informacje np. t=-25.5 C.
Wynik trzymany jest w 3 zmiennych uint8_t :
Kod:
subzero               -> 1 czyli (-)
cel                  -> 25
cel_fract_bits       -> 5



Jak w prosty sposób zrobić, aby to wrzucić do float??
W programie korzystam z wielu czujników i takie coś, czyli przechowywanie temp. w float ułatwiłoby mi życie ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lis 2014, o 17:30 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

eeeeeh panie a co za problem przechowywać to w jednej zmiennej typu int ? naprawdę czasem warto pogłówkować chwilę zamiast od razu w panice sięgać po floata

int tmp = ( (subzero<0)?-1:1 ) * ( (cel*10)+(cel_fract_bits) );

i masz panie

np temperaturę 27,3 st C w postaci liczby +273
np temperaturę -4,8 st C w postaci liczby -48

toż co za problem później gdy trzeba to wykorzystać - wyświetlić , wysłać ładnie sformatowane - oddzielić część dziesiętną - za pomocą dzielenia przez 10 i reszty z dzielenia


Autor postu otrzymał pochwałę

_________________
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 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lis 2014, o 17:40 
Offline
Użytkownik

Dołączył(a): 29 maja 2012
Posty: 60
Pomógł: 0

Ooo faktycznie :)
człowiek za bardzo kombinuje, jak można prościej ;)
Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2014, o 09:55 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

Radzio M. napisał(a):
Ooo faktycznie :)
człowiek za bardzo kombinuje, jak można prościej ;)
Pozdr.


Heheh... No po to się właśnie Mirek męczył w tłumaczeniach w książce i na blogu aby nie "walić" float-ów gdzie popadnie, bo pamiętaj, że operacje na nich to straszny pożeracz pamięci.
Sposób jaki Ci podał na tacy nie spowoduje przynajmniej, że będziesz co chwilę sięgał po procki z większym FLASH-em.

--
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2014, o 22:57 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

moze by zdalo sie ten przyklad przemycic do bluebooka jeszczetwardszego(tm) ? bo nie przypominam sobie zeby byl jak byl omawiamy odczyt z DS'a



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2014, o 23:33 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

charsz napisał(a):
bo nie przypominam sobie zeby byl jak byl omawiamy odczyt z DS'a

Akurat w BB tego nie było - ale w BB pokazywałem to na przykładzie ADC i już choćby na tych przykładach jeśli się czytało można zobaczyć - jakie podejścia można stosować żeby unikać floatów - a myślisz że jak to jest ?

przecież pół internetu jest usiane pytaniami - jak użyć floata żeby pokazać czy tam obliczyć napięcie 3,46V albo jeszcze pomnożyć coś tam przez współczynnik 0,0025 no bo przecież bez floata to się tego nie da zrobić no nie ? ;) a jednak się da .... i czasem wystarczy TYLKO zobaczyć JAK ... liznąć pomysł - a później już zastosować to w dowolnym innym przykładzie/sytuacji to mniejszy pikuś

_________________
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 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 19:21 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

mokrowski napisał(a):
Po choćby pobieżnej lekturze nabierzesz przekonania że raczej lepiej nie liczyć np. stanu Twojego konta na floatach :-)


Nie no tym mnie "rozwaliłeś".
Ja to bym chciał mieć taki stan konta, aby mnie te po przecinku (opps... sory kropce) nie interesowały ;).

--
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 20:24 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

Sorki, ale wiem (przynajmniej z grubsza o co Ci chodziło) - tylko sobie zażartowałem.
Po prostu rozbawił mnie Twój przykład :).
Jeśli Cię zdenerwowałem to "sorki" :oops:.

--
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 20:52 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

mokrowski napisał(a):
Grzegorz... napisał(a):
Sorki, ale wiem (przynajmniej z grubsza o co Ci chodziło) - tylko sobie zażartowałem.
Po prostu rozbawił mnie Twój przykład :).
Jeśli Cię zdenerwowałem to "sorki" :oops:.

--
Grzegorz...

?? Coś ty?! W żadnym wypadku. Napisałem bo już jesteś którąś z kolei osobą która dotknięta była ,,problemem floata" :-) Jak ktoś będzie szukał rozwiązania takiego problemu jak Ty to znajdzie w tym wątku :-) Mam gdzieś przykłady na ,,float pitfalls" ale przekopię backupy jeśli to _naprawdę_ będzie kogoś interesowało :-)


Pomyliłeś osoby - ja tylko wpadłem do wątku i żart zarzuciłem.
OK skończmy offtop, bo mod się wtrąci.

--
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 22:07 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

mokrowski napisał(a):
Ups.. Zaiste.. Przepraszam...;)


A ja "sorki" za głupi "wtręt" - chyba nie powinienem.
Co do float-ów i podobnych zakresów liczb, to chyba każdy przesiadający się z PC na uC ma z tym problem.
Jednak już gdzieś pisałem, że Mirek to dobrze opisał i należy korzystać z tej wiedzy jak i z wiedzy forumowej.
No chyba, że masz jakieś fajne przykłady to się podziel.

--
Pozdrawiam.
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO