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



Teraz jest 21 kwi 2026, o 05:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: Strukturki
PostNapisane: 12 lis 2014, o 18:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 582
Pomógł: 17

Hej ;-)
Na wstępie chciałbym zaznaczyć, że przeczytałem ten poradnik:
http://mirekk36.blogspot.com/2013/07/st ... adnie.html
Ale nie potrafię znaleźć tam wytłumaczenia na mój problem.
Chodzi mi o pomiar temperatury z 2 czujników, i wysłanie ich po RSie

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


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

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


Chodzi mi o to, aby zamiast tych funkcji wyslij_temp oraz wyslij_temp2
Stworzyć jedną..


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

Tylko nie bardzo wiem jak się za to wziąć

Domyślam się, że chyba trzeba zrobić tablicę (2 elementową?) np. tab[0]=t1; tab[1]=t2; i potem jakos coś na wskaźnikach?? ale nie wiem czy idę dobrym tropem
Proszę o pomoc jak to załatwić ;-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Strukturki
PostNapisane: 12 lis 2014, o 19:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Jak najbardziej dobry trop ;)

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

Ogólnie nie wiem po co tak rozbijać na poszczególne pola skoro można użyć większego typu np. int16_t (ze znakiem) i zapisywać w niej znak, wartość całkowitą i ułamkową pomnożoną przez 10^(ilość miejsc po przecinku). W przypadku wartości zmiennoprzecinkowych odrzucenie pola "ujemna" jest również możliwe...


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Strukturki
PostNapisane: 12 lis 2014, o 20:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

A ja jako poczatkujacy :) zapytam czy nie powinnismy uzyc wskaznikow w tej funkcji ?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Strukturki
PostNapisane: 12 lis 2014, o 20:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Mi przyszedł do głowy taki pomysł z użyciem wskaźników
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W main przypisujemy odpowiednią wartość do zmiennej nr_czujnika
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


I ciało funkcji wyslij_temp
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  
 Tytuł: Re: Strukturki
PostNapisane: 12 lis 2014, o 20:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

RafPe napisał(a):
A ja jako poczatkujacy :) zapytam czy nie powinnismy uzyc wskaznikow w tej funkcji ?

Raczej nie jest to w tym przypadku dobrym pomysłem, chociaż wszystko oczywiście zależy od implementacji i konkretnych wymagań. Tutaj wymogiem była "wiedza" o numerze czujnika i wartości jego pól.
W przypadku wskaźników również jest to wykonalne, ale ciężko byłoby poznać numer czujnika. Najprostszym sposobem byłoby zastosowanie pola w strukturze które zawierałoby w właśnie taki numer (na wzór indeksu tablicy), jednak dla niewielkiej ilości czujników nie posiadających jakiś złożonych kilku-bajtowych identyfikatorów po prostu może to nie mieć sensu. Inny sposób jaki mi przychodzi do głowy to wyliczanie offsetu względem jakiegoś czujnika bazowego (powiedzmy zerowego), ale i w tym przypadku rodzi się problem gdyż kompilator może zarezerwować nieciągły obszar pamięci mimo sekwencyjnie zadeklarowanych zmiennych...
Można co prawda używać atrybutu "aligned" i sekcji programu definiowanych przez użytkownika, ale to raczej "strzał z armaty do wróbla" :)

Edit:
jacekk232 napisał(a):
...
I ciało funkcji wyslij_temp
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Widzę, że właśnie Kolega użył sposobu z wewnętrznym numerem czujnika. Tak jak pisałem sposób dobry, ale dający lepsze rezultaty w przypadku pobierania identyfikatorów czujników (np. adres czujnika na magistrali 1-wire).
Można by się pokusić również o odrzucenie instrukcji warunkowej, która dodatkowo ogranicza ilość możliwych do zainstalowania czujników (bez jej modyfikacji), a w zamian za to od razu wyświetlić numer:

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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO