logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

atmega32 + 2xDS18B20 + rklibavr

keepASS 29 Wrz 2011 11:55 1861 2
REKLAMA
  • #1 9975034
    keepASS
    Poziom 10  
    Witam,
    Przeglądając forum znalazłem kilka podobnych tematów, ale w żadnym nie było rozwiązania na mój problem. Jak można wywnioskować z tematu chciałbym podpiąć 2 czujniki DS18B20 do uC atmega32. Wykorzystuję do tego biblioteki rklibavr. z jednym czujnikiem nie ma żadnego problemu.
    Po pierwsze to znalazłem odmienne sposoby podpięcia czujników do uC. aktualnie mialem 1 czujnik gdzie noga 1 byla podpięta do GND, noga 2 przez 4,7kΩ do Vcc=5V i noga 3 bezpośrednio do Vcc. W momencie podpięcia tak obu czujników nie mam wyniku z żadnego pomiaru. Czytałem również o "pasożytniczym" połączeniu, gdzie nogi 1 i 3 podpięte są do masy, ale nie wiem czy ta biblioteka to obsłuży tak jak powinna.
    Po drugie nie wiem jak się dokładnie odwołać programowo do tych czujników (do każdego z osobna).
    Oto mój listning maina

    Kod: text
    Zaloguj się, aby zobaczyć kod



    Na ekranie terminala podppiętego przez RS otrzymuję:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Prosiłbym o pomoc w tej kwestii. Jako, że jestem początkującym w tej kwestii prosiłbym również o w miarę prosto skonstruowane odpowiedzi.
  • REKLAMA
  • #2 9975430
    tmf
    VIP Zasłużony dla elektroda
    Trudno analizować czyjąś bibliotekę. Podłączenie wielu czujników do tej samej magistrali wymaga przy odczycie ich odpowiedniej adresacji (polecenie Match ROM). Z tego co widzę, to w twoim kodzie tego brakuje. Zacznij od przesłania ID wszystkich czujników i sprawdź czy to jest poprawne. Może do tej biblioteki są jakieś przykłady do wykorzystania?
    Mogę ci polecić swoją "bibliotekę" - do ściągnięcia z ftp ze stopki poniżej. do niej przynajmniej mogę się odnieść :) No i zastanów się czy obsługi OW nie zrobić jednak na UART - pomyśl też nad wyeliminowaniem tych delay - w większych aplikacjach to będzie problem.
  • #3 9977483
    keepASS
    Poziom 10  
    Wolałbym się pobawić tymi bibliotekami, które już jako tako znam. Przeglądałem te po których wspominałeś, ale przyznam że była to dla mnie czarna magia. Mam nadzieję, że na mojego posta trafi osoba, która również korzysta z rkavrlib.

    Aby bardziej rozjaśnić sprawę wrzucę jeszcze kilka kodów z których powyższy program korzysta.

    obsluga onewire


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    crc8.c


    Kod: text
    Zaloguj się, aby zobaczyć kod


    reset.c

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    parasite_enable.c


    #include "../onewire.h"

    Kod: text
    Zaloguj się, aby zobaczyć kod


    parasite_disable.c

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    input_pin.c

    #include "../onewire.h"

    Kod: text
    Zaloguj się, aby zobaczyć kod


    command.c

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    byte_wr.c


    Kod: text
    Zaloguj się, aby zobaczyć kod


    byte_rd.c

    #include "../onewire.h"


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    bit_io.c

    Kod: text
    Zaloguj się, aby zobaczyć kod


    set_bus.c

    Kod: text
    Zaloguj się, aby zobaczyć kod


    rom_search.c


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    termometr ds18x20

    DS18X20.h


    Kod: text
    Zaloguj się, aby zobaczyć kod


    copy_scratchpad.c


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    find_sensor.c

    Kod: text
    Zaloguj się, aby zobaczyć kod


    get_power_status.c

    #include "./ds18x20.h"

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    meas_to_cel.c

    Kod: text
    Zaloguj się, aby zobaczyć kod


    read_meas.c


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    read_meas_single.c

    Kod: text
    Zaloguj się, aby zobaczyć kod


    read_scratchpad.c

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    recall_E2.c


    Kod: text
    Zaloguj się, aby zobaczyć kod


    start_meas.c


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    tmp_tmp.c


    Kod: text
    Zaloguj się, aby zobaczyć kod


    temp_to_decicel.c


    Kod: text
    Zaloguj się, aby zobaczyć kod


    write_scratchpad.c

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod




    To by było na tyle. Mam nadzieję, że nie zanudziłem wrzuconymi kodami.
    Naprawdę zależy mi na rozwiązaniu tego problemu dlatego raz jeszcze zwracam się z prośbą o help.
REKLAMA