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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 12 lip 2025, o 03:28


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 22 gru 2015, o 19:13 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Witam,

    mam pewien problem a mianowicie, błędnie odczytuje mi temperaturę z DS18B20. Ciągle mam 0 (jak sprawdzam LSB i MSB to mam 255 w każdym). Morduję się z tym już 2 dzień... Szukałem pomysłów lecz...

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 24 gru 2015, o 00:49 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Masz pomieszane używanie rejestrów PINB, PORTB, DDRB - na przykład dlaczego przy wysyłaniu zmieniasz rejestr DDRB a nie PORTB?
    Cytuj:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Przeczytaj http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 gru 2015, o 01:22 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Szukając błędów w kierunkach pinów itd. znalazłem błędy w czasach. Porównywałem to z programem który działał i dostosowywałem do swojego "rozwiązania". Kierunki portów miałem raczej dobre, tak samo ustawienia, przynajmniej nie kojarzę bym to jakoś mocno zmieniał.
    Poniżej wklejam gotowy i działający kod dla potomnych, dane wyświetlam sobie po RS232 lecz tego tutaj nie dodałem bo to jest częścią mojej większej biblioteczki do jednego projekciku. Dziękuję wszystkim którzy rzucili choć okiem na problem z chęcią pomocy. Dziękuję też za nakierowanie :)

    KOD:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 24 gru 2015, o 18:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

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


    Cytuj:
    Szukając błędów w kierunkach pinów itd. znalazłem błędy w czasach. Porównywałem to z programem który działał i dostosowywałem do swojego "rozwiązania". Kierunki portów miałem raczej dobre, tak samo ustawienia, przynajmniej nie kojarzę bym to jakoś mocno zmieniał.

    Wcześniej moja sugestia z wklejonym kodem była związana z tym, że także funkcje zapisu i odczytu robisz trochę nietypowo. Ale zajrzałem do Mirkowych bibliotek i on także tak robi :(
    Chodzi o to, że sterowanie czy masz wystawić stan wysoki czy niski robisz poprzez sterowanie kierunkiem. Działa to dzięki temu, że w PORT masz wpisane 0. Więc jak dajesz wyjście, to wystawiasz tak stan niski na pinie. Jak dajesz jako wejście, to masz high impedance, ale na szynie jest rezystor i on podciąga i daje stan wysoki. Więc wszystko działa.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 gru 2015, o 19:07 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    faktycznie :shock: tam ma być PORTB &=~(1<<PB0);

    najlepsze że po zmianie nadal działa, przed zmianą również działało :lol: ATmega jest mądrzejsza niż ja :lol:

    zawsze z DS18B20 miałem problem, DHT11 od ręki zrobiłem a z tym DS... pisząc to mogłem namieszać bo szukałem rozwiązań w wielu różnych miejscach i sprawdzałem co w miarę mi spasuje a potem pisałem po swojemu. Muszę przy okazji to pozmieniać na makra by mieć łatwą o modyfikacji bibliotekę.

    Ważne że już śmiga :D



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