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



Teraz jest 28 mar 2026, o 21:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 29 ] 
Autor Wiadomość
PostNapisane: 31 paź 2013, o 16:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Zastanawiam się w jaki sposób mogę zapisać temperaturę do zmiennej by później ją porównać z tą która jest w innej zmiennej ?

Chodzi o to że czujnik co 2 sekundy robi pomiar i po dokonaniu pomiaru by zapisać do zmiennej temperaturę.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


by później ją porównać z zapisaną temperaturą w innej zmiennej np tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



O tyle o ile porównanie by raczej działało o tyle mam problem z zapisem do zmiennej temperatury która by wyglądała tak

-06,2 lub 29,1

------------------------ [ Dodano po: 4 minutach ]

Albo w taki sposób:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



tylko mam problem z tym jak zapamietac wartosc temp: 24,9 do zmiennej :/

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 16:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Sprowadzam temperaturę do wartości całkowitej przez pomnożenie przez 10.
np. -23.4 -> -234

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



i później tak porównuję

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 16:31 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

A jakbyś to zrobił za pomocą struktur tj. jedna by przechowywała temperaturę pobraną z czujnika a druga struktura zawierała by temperaturę która będzie potrzeba ci do porównania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 16:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

sq8dsr napisał(a):
Sprowadzam temperaturę do wartości całkowitej przez pomnożenie przez 10.
np. -23.4 -> -234

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



i później tak porównuję

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




O ile sprowadzanie temp do wartości całkowitej jest dla mnie jasne o tyle te porównanie już nie :/ w szczególności ram_settings




MichalXY napisał(a):
A jakbyś to zrobił za pomocą struktur tj. jedna by przechowywała temperaturę pobraną z czujnika a druga struktura zawierała by temperaturę która będzie potrzeba ci do porównania.



Może jakiś przykład ?

------------------------ [ Dodano po: 8 minutach ]

W takim kodzie wychodzi mi błąd:

Description Resource Path Location Type
comparison between pointer and integer temperatura.c /zegar_temp_v0.2 line 79 C/C++ Problem
comparison between pointer and integer temperatura.c /zegar_temp_v0.2 line 85 C/C++ Problem


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Rozumie że mam błąd w if ... ale nie rozumie dlaczego :/

------------------------ [ Dodano po: 27 minutach ]

W/w kod nie pokazuje już błędów ale ... nie wyświetla temp_z_min ani temp_z_max nie ma tam żadnych wartości

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 17:18 
Offline
Moderator
Avatar użytkownika

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

majster napisał(a):
O ile sprowadzanie temp do wartości całkowitej jest dla mnie jasne o tyle te porównanie już nie :/ w szczególności ram_settings


Akurat kolega podał ci BARDZO dobry sposób - no tylko jak to bywa czasem - pewnie nie doprecyzował szczegółów ...

ale widząc zapis

ram_settings.temp1_low

powinieneś już się domyśleć że chodzi pewnie o jakieś pole struktury, które na dodatek jest typu

int

dzięki czemu można ładnie np we Flash albo w EEPROM trzymać jakieś wartości do porównania

-234
126
87
43
-72

;) jakie to będą temperatury ?

-23.4
12.6
8.7
4.3
-7.2

_________________
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: 31 paź 2013, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Zaczynam sądzić że jestem na to za głupi cały czas myli mi się php z C tam troszkę inaczej się pisze struktury zmienne itp ... i przez to nie mam pojęcia jak to wykombinować

------------------------ [ Dodano po: kilkunastu sekundach ]

nie chcę narazie tego trzymac w eeprom .... chciałbym to trzymać w zmiennej która się wyczyści po wyłączeniu avrka

------------------------ [ Dodano po: 1 minucie ]

mirekk36 napisał(a):
ale widząc zapis

ram_settings.temp1_low

powinieneś już się domyśleć że chodzi pewnie o jakieś pole struktury, które na dodatek jest typu

int

tak domyśliłem się ale jak pisałem chciałem to trzymać w zmiennej ulotnej po zabraniu zasilania

------------------------ [ Dodano po: 2 minutach ]

czy możesz mi powiedzieć co tu jest nie tak że te zmienne są puste


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zmienna temp_z_min oraz temp_max jest pusta :/

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 18:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Widzisz bo ja wkleiłem kawałek kodu z mojego projektu którym jest dwupunktowy termostat z programowaną histerezą, dlatego są 4 wartości graniczne. No akurat tam progi temperatur są trzymane w pamieci EEPROM i kopiowane do ramu. Ale to nie jest istotne. Bo porównanie jest do tego co jest w ramie. No i u mnie to jest na strukturze. Ale strukturą posługujesz się tak samo jak każdą inną zmienną, tyle że tutaj jest tak:
nazwa_str.pole_str

EDYTA:
Zapomnijmy o struct.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wynik tej funkcji jest typu int i możesz go zapisać do zmiennej typu int.
Albo nawet wstawić funkcję do warunku i porównać ją z zadaną temp w takiej samej postaci (czyli pomnożonej przez 10).

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 31 paź 2013, o 18:17 przez sq8dsr, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 18:12 
Offline
Moderator
Avatar użytkownika

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

no to jak nie chcesz trzymać w eeprom to nie znaczy że nie możesz w strukturze. Za głupi to nie jesteś i nie opowiadaj takich mi tu herezji ;)

albo napisz sobie makro ułatwiające
albo np zrób zmienną

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i potem porównuj

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
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: 31 paź 2013, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Naklepałem coś takiego jak mirek podpowiada:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Mam taki warning:

Description Resource Path Location Type
Suspicious semicolon ds18x20.c /zegar_temp_v0.2/1Wire line 59 Code Analysis Problem

a dokładnie tę linię:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


całość z 1Wire:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 3 minutach ]

A i pytanie czy prawidłowo wyświetlam temp max i min na lcd ?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 7 minutach ]

W ten sposób wyświetla mi :

"p { "

------------------------ [ Dodano po: 26 minutach ]

ale gafa nie lcd_char a lcd_int :) teraz wyswietla :) i sie aktualizuje ... jeszcze przed wyswietleniem musze zrobic zamiane czyli % 10 :)

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Chyba niepoprawnie stosujesz funkcję lcd_char. Ona służy do wyświetlenia jednego znaku.

Jeśli temp_z_min to liczba całkowita ze znakiem np. -170 to trzeba ją przekonwertować na postać taką jaka ma się wyświetlić.
np. 12,7 'C
i ja bym użył tutaj funkcji div.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

ok narazie wyswietlam tak jak jest czyli np 240 ale za moment bede ja konwertowal :) na temperature ...

------------------------ [ Dodano po: 1 minucie ]

mimo warninga jest ok ale chcialbym sie pozbyc tego warninga opisanego powyzej

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

To jak tak to używaj funkcji lcd_int(temp_z_min)

A co do funkcji div robisz tak

powołusz sobie zmienną typu div_t
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


później:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

tak wyzej napisalem :)

------------------------ [ Dodano po: 26 minutach ]

ale gafa nie lcd_char a lcd_int :) teraz wyswietla :) i sie aktualizuje ... jeszcze przed wyswietleniem musze zrobic zamiane czyli % 10 :)


teraz głowie się jak zamienić to spowrotem na temperaturę :)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Zobacz wyżej, opisałem tam dzielenie funkcją div



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Czy tak będzie prawidłowo ?


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: kilkunastu sekundach ]

a tak nakładamy się postami :)

------------------------ [ Dodano po: 4 minutach ]

ok a jak bedzie liczba - to bedzie - po konwersji ?

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Uzycie operatora % da ci resztę z dzielenia tylko.
Czyli jeszcze musisz zrobić normalne dzielenie które da Ci część całkowitą.
div się sprowadza do tego samego, ale w moim odczuciu jest prostsze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

tak dokldanie dziala na div ale ... ale jak wartosc temp_z_max bedzie -178 to po div bedzie -17,8 ??

sory za glupie pytanie ale nie mam jak zapodac temp ujemnej na czujnik :)

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Tak będzie -17,8.
Ujemną temp najlepiej wytworzyć niskowrzącą cieczą. Gazem do zapalniczek udaje się schłodzić do -34 nawet :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 21:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

no fakt :d bedzie test

------------------------ [ Dodano po: 10 minutach ]

-32,8 pokazal wyswietlacz

zapis byl -32.-

hmm gdzie moze byc bubel ??

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 13 minutach ]

i caly czas meczy mnie ten warning

Description Resource Path Location Type
Suspicious semicolon ds18x20.c /zegar_temp_v0.2/1Wire line 59 Code Analysis Problem


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 22:03 
Offline
Moderator
Avatar użytkownika

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

majster napisał(a):
if ( (i & DS18B20_12_BIT) == DS18B20_12_BIT ) ;  //tutaj jest line 59


Pewnie działasz w Eclipse nowszym niż Indigo ;) no to masz ;)

a na poważnie to żaden błąd tylko trzeba w nowszych eclipsach wyłączyć właściwość która zbyt przesadnie sprawdza kod w C. Bo ona się czepia czegoś takiego:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


że niby to źle .... tymczasem to głupota bo jest to dobrze ....

rozwiązania są dwa

1. albo wyłączysz tą opcję durną w Eclipse
2. albo dodasz parę nawiasów klamrowych żeby było tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 6 minutach ]

o tu jest trochę o tej nadgorliwej opcji

post13899.html#p13899

_________________
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: 31 paź 2013, o 22:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Ok a dlaczego z -328 pokazalo mi na wyswietlaczu -32.- ??

Wysłane z Tapatalk2 [url='http://tapatalk.com/m?id=10']now Free[/url]

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 22:41 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Ok a dlaczego z -328 pokazalo mi na wyswietlaczu -32.- ??


majster - zajrzyj do rozdziału z ADC i zobacz jak się tam majstruje na zmiennych żeby odzyskać przecinek z tym div ok?

_________________
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: 31 paź 2013, o 22:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Czyli izobutan schłodził do -32 ? :P

Mi się wydaje, że tam się stała taka rzecz, że pole rem z dzielenia div też się stało ujemne. I trzeba by warunek napisać, że jak liczba jest ujemna to część dziesiętna idzie z minusem a część ułamkową mnożymy przez (-1).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 23:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Trochę za późno dziś :) jutro jeszcze raz przeczytam na spokojnie popołudniu i zobaczę co mam źle :)

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 09:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

mirekk36 napisał(a):
Pewnie działasz w Eclipse nowszym niż Indigo ;) no to masz ;)



hmm moja wersja to właśnie Indigo :)

Eclipse IDE for C/C++ Developers

Version: Indigo Service Release 2
Build id: 20120216-1857

------------------------ [ Dodano po: 12 minutach ]

No i niestety odptaszkowałem ... i ... dalej w libsie 1Wire jest warning jak powyżej :/

------------------------ [ Dodano po: 20 minutach ]

Nie wiem dlaczego odptaszkowanie nie pomogło ... poprostu zrobiłem klamry do if else if .... i warning zniknął ... :)

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 22:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

odnawiam temat nie moge sobie poradzić z - :/

czyli temperatura ma

-32.2
zapisuje ja tak -322

po odzyskaniu przecinka mam

-32,-2

jak pozbyc sie tego drugiego znaku - ?

------------------------ [ Dodano po: 29 minutach ]

ok problem rozwiązany

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 15:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Jak lepiej obliczać temperaturę najniższą i najwyższą ? rozdzielać to w ten sposób osobno dla temp ujemnej i osobno dla temp dodatniej ?

np tak ?:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy może dla dodatniej i ujemnej jednakowo ?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wydaje mi się że jedna i druga opcja ma wadę.

1. Zle będzie interpretowała temperaturę maxymalna bo gdy mamy np 1 stopień a wejdzie sobie na -2 to zacznie podawać te z - a przecież wyższa była 1.

2. W momencie statru urządzenia gdy jest temp - nie zapisze jej poprostu będzie zadeklarowane 0

Czy może się mylę

mogę liczyć na wyjaśnienia .... ja testowałem oba sposoby i w obu mi coś nie grało :/

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 18:53 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W pierwszym pomyliłeś się i 2 razy porównujesz z temp_z_min.
Termometr powinien posiadać jakiś przycisk do resetu tych wartości albo po włożeniu baterii min i max musisz ustawiać na aktualną temperaturę.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 22:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

w 1 przykladzie celowo tak porownuje ... bo wydaje mi sie ze tak bedzie ok ...

z menu opcji kasuje temp max i min ... a po wlaczeniu min ma 900 stC a max - 900 stC dzieki czemu wbija na ta ktora jest aktualnie

_________________
Usługi druku przestrzennego - www.drumik.pl



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: 29 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO