Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega8] - DS18b20 + wyświetlacz 7 segmentowy (wyświetlanie wyniku)

sputbik 16 Lut 2014 16:17 2202 1
  • #1 16 Lut 2014 16:17
    sputbik
    Poziom 2  

    Witam!
    Swego czasu zacząłem przygodę z atmegą i nadszedł czas na zrobienie termometru. Chcę to zrealizować za pomocą dwóch 7 segmentowych wyświetlaczy, termometru DS18B20 oraz mikrokontrolera Atmega8. Układ złożyłem, przedstawiony jest na zdjęciu. Niestety nie posiadam układów, żeby użyć mniejszej ilości pinów, dlatego wyświetlacze zajmują właściwie całe porty B i D (rozwiązanie tymczasowe oczywiście, niedługo zamówię brakujące elementy). Termometr póki co działa w trybie 12bitowym, nie zmieniałem jego konfiguracji.
    [Atmega8] - DS18b20 + wyświetlacz 7 segmentowy (wyświetlanie wyniku)

    Problem zaś wygląda następująco: Wyświetlanie temperatury po prostu nie działa. Wyświetlane są przeważnie cyfry 00 lub jakieś głupoty. Próbowałem już różnych sposobów konwersji temperatury i żaden nie spełnił zadania. Poniżej kod, mam nadzieję, że ktoś pomoże mi znaleźć błąd

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Ogólnie kod nie wygląda zbyt elegancko, ale najważniejsze, żeby działał, potem zajmę się dopieszczaniem. Posiłkowałem się wieloma wątkami z forum tego i innych, różnymi książkami, daatsheetami i nie mogę znaleźć rozwiązania. ardzo proszę o pomoc.

    0 1
  • #2 16 Lut 2014 16:22
    dondu
    Moderator Mikrokontrolery Projektowanie

    Witaj.

    Zacznij od tego, że symuluj (w odpowiednim miejscu Twojego programu) prawidłowe (według Ciebie) wartości pomiaru i wyświetlaj je na wyświetlaczu. Uwzględnij newralgiczne przypadki jak np. zero oraz dodatnia i ujemna temperatura. To pozwoli Ci na ustalenie czy przyczyną są funkcje wyświetlania, czy odczytu temperatury.

    Następnie drążysz temat w kierunku, który zawodzi używając symulatora Atmel Studio.

    0