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



Teraz jest 22 gru 2024, o 14:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 17 mar 2014, o 13:04 
Offline
Nowy

Dołączył(a): 19 lut 2014
Posty: 3
Pomógł: 0

Witam, pozwolę sobie założyć tutaj temat, z racji że w ostatnim z moich postów podpiąłem się pod niewłaściwy temat i podałem zbyt małą ilość informacji.

Podłączyłem DS18B20 do atmegi32 i wyświetliłem temperatury na wyświetlaczu. Do obsługi DSa korzystam z bibliotek Mirka, wszystko mi ładnie działa. Chce dokonywać sterowania przekaźniczkami za pomocą temperatury czytanej z dsa i tu zaczynają sie schody. Zaglądałem do bluebooka i jeżeli wszystko dobrze zrozumiałem to jedno-bajtowa zmienna cel przetrzymuje dziesiętna część temp. która jest wyświetlana na LCD po konwersji liczby całk. na string. Próbuję za pomocą prostej instrukcji warunkowej if ( cel > 30) PK1_ON; ustawić stan wysoki na jednym z portów aby zadziałał przekaźnik,jednak powyżej temperatury 30c nic sie nie dzieje. Początkowo myślałem że może źle coś podpiąłem, więc żeby się upewnić pod pin PD7 podpiąłem diodę anodą z rezystorem 1k i wpiąłem katodą do masy. Jednak nadal bez rezultatu dioda się nie zapala po przekroczeniu 30c na DSie. Poniżej zamieszczam kod:

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


jak widać jedyne co dodałem to :

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


ale wygląda to na zbyt proste żeby działało ;). Bardzo proszę o pomoc, jak rozwiązać ten pewnie dla większości błahy problem, pozdrawiam.



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

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

No to teraz ty sam zobacz ....

wstawiłeś ten warunek ot tak sobie w pętli głównej while(1) ....

a przecież wewnątrz tej pętli masz dwa warunki IF w których masz sprawdzaną temperaturę z każdego czujnika - co więcej sprawdzanie to następuje co ściśle określony czas za pomocą techniki timerów programowych ... dlaczego więc nie wstawisz swojego warunku w odpowiednim IF'ie dla danego czujnika ? tylko dałeś to wprost w pętli głównej i lata ci to milion razy na sekundę .... a prawdopodobnie masz tylko jeden czujnik i po drugim sprawdzeniu w cel masz jakąś dziwną wartość

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

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