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



Teraz jest 30 sty 2025, o 17:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 24 cze 2014, o 21:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Witam Mistrzów

Siedzę przy programie, który oparty jest na atmedze 32 i magistrali 1Wire.
Chciałbym za pomocą znanych już dwóch czujników temperatury DS18B20 mierzyć temperaturę i wysłać ją oraz ich ROM_CODE na stronę internetową.
Napisałem kod, wgrałem w mikro kontroler i niestety wartość temperatury na stronie się nie pokazuje i ROM_CODE też. Być może pomyliłem się w typach używanych zmiennych i z stąd zonk. Nie proszę o gotowe rozwiązanie tylko o wskazówki co poprawić bo kod kompiluje się bez błędów i warning'ów.
W skrócie zrobiłem to tak (używam biblioteki pana Mirka dla DS18B20):

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


Tutaj listing ze sprawdzeniem poprawności odczytu temperatury dla czujnika 1, 2 i jej wysłanie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Za każdą pomoc będę bardzo wdzięczny.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Ostatnio edytowano 24 cze 2014, o 22:15 przez Lex_, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 21:56 
Offline
Moderator
Avatar użytkownika

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

spróbuj sam przeanalizować co ty tutaj wyprawiasz ;)

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


i opisz to - ale dokładnie krok po kroku

_________________
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: 24 cze 2014, o 21:59 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Na razie proszę się zastosować do wymagań: topic7402.html

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 22:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Wg mego mniemania puszczam w ruch pętlę, która szuka 8 czujników linii.
Może to niepotrzebne wyprzedzenie, bo mam tylko dwa, ale w przyszłości miałbym większe możliwości.

No chyba że się mylę :)

edit: sorry - zapomniałem o tym syntax:

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.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 22:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Jaglarz napisał(a):
Na razie proszę się zastosować do wymagań: topic7402.html



Lex_ przeczytaj topic zaproponowany przez Prosiaczka i popraw swój pierwszy post. Bo bez tych kolorków w ogóle nie widzę co program robi, a wrodzone lenistwo nie pozwala mi przekopiowac tego do notepada++ czy innego ustrojstwa koloryzującego składnie. Jak już pozmieniasz to może ktoś będzie Ci w stanie bardziej pomóc.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Już poprawione u góry. Sorry za nie dopatrzenie.

edit: @Mirek36: zmienna 'p' powinna być tablicą ??

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2014, o 22:53 
Offline
Moderator
Avatar użytkownika

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

masz pan

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


więc co to jest p ??? ... to jest zmienna o wielkości jakiej ? .... jednego bajta tak ?

no to teraz co robisz w pętli?

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


w pierwszym obiegu pętli twoja zmienna p (nie wiedzieć czemu typ char) ... równa się wartości pierwszej liczby z ośmiu, całego numeru czujnika .... np 0xAF

drugi obieg pętli, i znowu p= .... i teraz w zmiennej p zamazujesz 0xAF drugą liczbą z ośmiu całego numeru czujnika czyli np 0x2C

trzeci obieg pętli ..

czwarty ...

....

ostatni obieg pętli i twoje p = ostatniej wartości niech to będzie np 0xd2

więc po za kończeniu pętli masz pan zmienną jednobajtową z wartością ostatniego członu numeru czujnika np 0xd2 ... i co ci z tego przyjdzie - skoro numer zapisany jest aż na OŚMIU bajtach w tablicy sensors ??? :(

ale to nie wszystko .... stworzyłeś sobie jakieś 3 zmienne p i q ... i co z tego ? gdzie później z nich korzystasz w kodzie ? nie zastanowiło cię to ? nigdzie - więc kompilator tak w ogóle to wyżyna ci w pień te dwie pętle z kodu i w ogóle się nie kompilują bo są niepotrzebne - uznaje je za śmieci

więc nie ma co zgadywać czy p powinna być tablicą czy nie wiadomo czym bo przede wszystkim to trzeba jakoś to przekazać do bufora ramki UDP

a skoro mamy bufor ramki udp to po co w ogóle tworzyć jakieś dodatkowe byty w postaci innych tablic skoro można je przekazać wprost z tablicy sensors ?

_________________
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: 24 cze 2014, o 23:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Sedno:
Nie wiem więc jak poprawnie przekazać te dane do ramki.

Cytuj:
stworzyłeś sobie jakieś 3 zmienne p i q ... i co z tego ? gdzie później z nich korzystasz w kodzie ?

Być może nie zwrócił pan uwagi, ale 'p' i 'q' nie używam potem, a jedynie wskaźniki, które na te zmienne wskazują i potem są przekazywane w funkcji wysyłającej dane.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cytuj:
po co w ogóle tworzyć jakieś dodatkowe byty w postaci innych tablic skoro można je przekazać wprost z tablicy sensors ?


Mógłby pan napisać w jaki sposób ?
Wprost przypisać wartość i wysłać?
Przykład:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Rzecz jasna typ 'p' i 'q' do zmiany.

Dziękuję za odpowiedź.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2014, o 04:39 
Offline
Moderator
Avatar użytkownika

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

ok tego ze wskaźnikami r i s nie zauważyłem bo to kolejne zresztą coraz większe mega zamieszanie w tym kodzie ...

Kłopot polega na tym, że ja tobie nie jestem w stanie napisać kodu ... to musisz zrobić sam, ja mogę tylko cię naprowadzać co robisz ewidentnie źle gdy uda mi się na szybko zobaczyć błędy (dzięki temu jak już sam dojdziesz co masz nie tak - to gwarantuję ci że zapamiętasz to rzeczywiście na zawsze a pewnie i czegoś nowego się nauczysz) ... Dlatego podpowiedziałem wyżej o tych twoich pętlach

to teraz kolejna wskazówka, jak masz 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.


to powiedz mi analizowałeś działanie funkcji fill_tcp_data() ? bo coś mi się mocno wydaje, że nie ... bo gdybyś to zrobił to nigdy nie wpadłbyś na pomysł przesłania tam wskaźnika r, który wskazuje na twoją zmienną jednobajtową p albo q.

tymczasem ciało tej funkcji to zaledwie JEDNA linijka .... i powiedz mi co z niej wynika jeśli chodzi o przekazanie wskaźnika jako ostatniego argumentu ?

bo na razie to zadziałałeś z nią (tzn z tą funkcją) tak - że jeśli potrzebny jest tam wskaźnik - to dla ciebie nie jest ważne jaki wskaźnik :( ... tylko ważne żeby był jakiś , jakikolwiek, hmmm dowolny wskaźnik ...

_________________
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: 25 cze 2014, o 16:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

:D Spoko poradzę sobie :D

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2014, o 16:47 
Offline
Moderator
Avatar użytkownika

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

Lex_ napisał(a):
:D Spoko poradzę sobie :D


to mi się podoba - więc mała podpowiedź - słowo klucz to STRING, a więc numer DS'a musisz przekopiować jako string.


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: 25 cze 2014, o 22:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 mar 2013
Posty: 236
Lokalizacja: Warszawa
Pomógł: 5

widac pan mirek pomaga pełną parą, ale ja się dorzucę i fajnie by było rozbić te blokujące 750ms na jakiś timer, np. co 1ms i tyle.
Może to zboczenie, ale widząc kody pana mirka pisane od zera, to tam raczej dilejów nie ma. A ja 1wire pisałem sam od zera, więc podam malutki fragment kodu.
taki tam kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2014, o 16:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Dzięki za uwagi i pomoc :) Z Timerem jak najbardziej słuszna uwaga - też się do nich przekonałem, tutaj poszło tak na szybko z delay.

Co do kodu - pracuję nad nim :)

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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