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

Termometr jednopunktowy - błąd wyświetlania napisów na LCD

pawel1392 30 Maj 2010 00:28 1370 3
REKLAMA
  • #1 8132112
    pawel1392
    Poziom 13  
    Witam. Zbudowałem 2 termometry jednopunktowe z wyświetlaczem LCD 1 wire na attiny2313 ze strony Termometr.
    I po zbudowaniu i zaprogramowaniu procesora dołączonym programem (do pobrana ze strony z projektem) nie wyświetla mi poprawnie pierwszej lini na wyświetlaczu LCD. A mianowicie zamiast napisu *Temperatura* mam *Tempe. Natomiast linia 2 z wynikiem temperatury jest wyświetlana w poprawny sposób.
    Myślę ,że błąd w montażu , albo uszkodzenie LCD nie wchodzi w grę bo identyczny problem jest na obydwu wyświetlaczach w obu układach... Mógłbym prosić o przeanalizowanie kodu programu i sprawdzenie czy błąd nie leży po stronie programu ? A także o napisanie jak ustawić fusebity w tym układzie(w burn O macie) bo może to jest przyczyną złego wyświetlania... Mam też pytanie odnośnie migania wyniku na ekranie, otóż podczas każdej aktualizacji pomiaru tekst na ekraniku przygasa. Czy da się to jakoś wyeliminować i czy poprawka zmieści się w attiny2313?
    Z góry dziękuję za wszelką pomoc
    pozdrawiam Paweł
  • REKLAMA
  • Pomocny post
    #2 8132208
    Andy74
    Poziom 25  
    Witam.
    Sprawdź w ten sposób:
    $crystal = 1000000                                          'deklaracja częstotliwosci pracy kwarcu
    
    $regfile "attiny2313.dat"     'model procesora dla którego jest ten program
    Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32        ' definicja znaku stopnia
    
    
    Config 1wire = Portd.5                                      ' konfiguracja portu PD.5 jako wejscia magistrali 1-wire
    
    Dim Odczyt(2) As Byte , T As Integer , Napis As String * 5       ', T1 As Single , A As Byte , Licznik As Byte
    'Deklaracja wszystkich zmiennych potrzebnych do pracy programu
    
    Cursor Off : Cls
    
    Do
      1wreset                                                   'reset
      1wwrite &HCC                                              'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
      1wwrite &H44                                              'dokonaj konwersji
      Waitms 750                                                'przeczekaj czas konwersji
      1wreset                                                   'reset
      1wwrite &HCC                                              'rozkaz adresowy SKIP ROM
      1wwrite &HBE                                              'rozkaz funkcyjny - polecenie odczytu DS18x20
      Odczyt(1) = 1wread(2)                                     'odczytaj dwa pierwsze bajty
      T = Makeint(odczyt(1) , Odczyt(2))                        'przepisz odebrane bajty do zmiennej typu Integer
    
      T = T * 10                                                '
      T = T / 16                                                '
    
    
      Napis = Str(t)
      Napis = Format(napis , " 0.0")
      Upperline
      Lcd "* Temperatura *"
      Lowerline
      Lcd "Wynik: " ; Napis ; " " ; Chr(1) ; "C "               'wyswietl
    Loop : End
    

    Jeśli jeszcze nie ruszałeś fusebitów, to lepiej zostaw je na razie w spokoju. Powyższe powinno działać na domyślnym taktowaniu tiny2313.

    Powodzenia!
    Andy
  • REKLAMA
  • Pomocny post
    #3 8134277
    LED5W
    Poziom 34  
    Sprawdź, czy masz ustawiony odpowiedni rodzaj wyświetlacza.

    W ustawieniach wybierz "16 * 2" lub dopisz w kodzie
    Config Lcd = 16 * 2
  • #4 8135910
    pawel1392
    Poziom 13  
    Dziękuję. W środę wieczorem sprawdzę i napiszę jak mi poszło, ponieważ przez kilka dni nie ma mnie w domu. ;)


    edit:03.06.2010 00:33
    Wgrałem program i wszystko pięknie działa ;) problem z wyświetlaniem 1 linii leżał rzeczywiście w tym, że wyświetlacz był ustawiony jako 1x16;) Ponadto po wgraniu przerobionego programu obraz nie miga;) Bardzo dziękuję za pomoc i zainteresowanie ;) Pozdrawiam Paweł
REKLAMA