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

Atmega8+ds18b20 [C] - Program wyswietla tekst na ułamek sekundy

mati_7828 14 Cze 2014 19:35 1464 5
REKLAMA
  • #1 13707361
    mati_7828
    Poziom 8  
    Witam! Dziś zająłem się uruchomieniem ds18b20 razem z zestawem uruchomieniowym ZL2AVR z Atmega8. Jako przykład użyłem opracowania Cezarego Klimasza "obsługa ds18b29". Eclipse nie pokazuje żadnego ostrzeżenia. Problem jest w tym że nic się nie wyświetla. Zauważyłem że podczas resetowanie procesora tekst wyświetla się na ułamek sekundy. Termometr podłączyłem do PD0. Umieszczam kod i schemat zestawu. Proszę o pomoc.

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



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


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 13708407
    el2010tmp
    Poziom 25  
    Dopisz coś takiego:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    pod wywołaniem funkcji lcd_puts(str1);
    Jeżeli napis nie zniknie przesuwaj powyższą linijkę coraz niżej w kodzie. W ten sposób znajdziesz miejsce w którym pojawia się problem.
  • REKLAMA
  • #3 13708518
    mati_7828
    Poziom 8  
    Napis nadal się nie pojawia. Nic się nie zmieniło
  • REKLAMA
  • #4 13708748
    el2010tmp
    Poziom 25  
    Czyli problemu należy szukać wcześniej.
    Jak wygląda funkcja lcd_init() oraz makro LCD_CLEAR ?
    Jaki jest schemat połączeń?
  • REKLAMA
  • #5 13708785
    mati_7828
    Poziom 8  
    Podłączenie wyświetlacza:
    RS->PB0
    RW->PB1
    E->PB2
    D4->PB3
    D5->PB4
    D6->PB5
    D7->PB6
    ds18b20->PD0

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

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


    Dodano po 1 [godziny] 13 [minuty]:

    Wykorzystałem inną bibliotekę obsługującą wyświetlacz od radzio.dxp.pl. Teraz napis się wyświetla tylko nie odczytuje temperatury tylko wyświetla napis 'Error'.
    Gdy program się uruchomi i odłącze termometr i przy powtórnym podpięciu w trakcie działania programu na chwilę wyświetla się temperatura 0 stopni. Pozdrawiam

    Dodano po 3 [godziny] 20 [minuty]:

    Zauważyłem że gdy odłączne temometr o podłącze pin PD0 do masy to wyświetla się 0 stopni

    Dodano po 1 [godziny] 5 [minuty]:

    Wydaje mi się że to uszkodzony układ jutro to sprawdzę.
  • #6 13711271
    el2010tmp
    Poziom 25  
    Podłączając PD0 do masy możesz go uszkodzić. Problemów szukaj w uc1Wire_ResetPulse() skoro zwraca zero. Ewentualnie możesz mieć źle podpięty/uszkodzony czujnik.
    Masz rezystor 4k7 pomiędzy DATA a Vcc?
    Może być również problem z _delay_ms() jeżeli zegar w programie zdefiniowany jest inaczej niż w rzeczywistości.
REKLAMA