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

[C][mega16] Wyswietlacz 1602a nie wyswietla :(

misiu_mietowy 09 Sty 2012 19:37 1817 13
  • #1 10373345
    misiu_mietowy
    Poziom 16  
    Jak w temacie. Wyswietlacz podlaczony jest nastepujaco:
    DB0...DB7 -> PORTA, RS->PB0, WR-> PB1, E->PB2, zasilanie i podswietlenie oraz kontrast - standardowo:)

    Kod zaczerpnalem z tej stronki i troche przerobilem:

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


    To wszystko wyglada sensownie, ale jedyne co otrzymuje to 16 ciemnych prostokatow w 1. linijce jak podkrece sobie kontrast :(
    Polaczenia sprawdzilem - jest OK. Napiecie dochodzi do pinow zasilania ukladu, regulacji kontrastu i podswietlenia (z reszta z podswietleniem i regulacja kontrastu nie ma problemu)
  • #2 10373620
    excray
    Poziom 41  
    Inicjalizacja LCD źle przeprowadzona.
  • #3 10373891
    misiu_mietowy
    Poziom 16  
    Czyli bledy sa w funkcji:

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


    Co zatem mam zmienic? W topicu obok mojego user zrobil cos takiego w ramach inicjalizacji:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Czy tez mam cos takiego zrobic?
  • #4 10373995
    excray
    Poziom 41  
    1. Skorzystaj z gotowej biblioteki. Pamiętaj że korzystasz z komunikacji 8-bit
    2. Wykonaj w swojej poprawną inicjalizację. W pdf'ie od sterownika jest dokładnie opisana inicjalizacja w trybie 8-bit. Załączam screen:
    [C][mega16] Wyswietlacz 1602a nie wyswietla :(
  • #5 10374288
    misiu_mietowy
    Poziom 16  
    excray napisał:
    1. Skorzystaj z gotowej biblioteki. Pamiętaj że korzystasz z komunikacji 8-bit


    Skąd ją wziąć? Czy mam wpisać w google'a "Poprawna biblioteka" :) ?
  • #7 10376067
    misiu_mietowy
    Poziom 16  
    Nadal to samo. Polaczenia OK. Kod ze strony 'Radzia' wyglada sensownie, a mi sie nic nie wyswietla :( Moze wyswietlacz rąbnięty...
  • #8 10376644
    excray
    Poziom 41  
    W bibliotece Pana Radosława Kwietnia port danych to PORTA a porty sterujące to odpowiednio:
    RS- PORTC,0
    ENA - PORTC,2
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Czy Ty też masz tak to podłączone?
  • #9 10376762
    misiu_mietowy
    Poziom 16  
    Nie:) Mniej roboty zmienic kod niz przelutowywać. U mnie jest tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #10 10376924
    excray
    Poziom 41  
    A plik główny jak u Ciebie wygląda?
  • #11 10379829
    misiu_mietowy
    Poziom 16  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #12 10379938
    excray
    Poziom 41  
    A jaką częstotliwością taktujesz procesor? Bo tu masz zdefiniowane 1MHz. Fuse bity dobrze ustawione? Jeśli odpowiedź to 2 x TAK to ja Ci więcej zdalnie nie pomogę bo albo pomijamy jakiś szczegół albo masz uszkodzony wyświetlacz (w co raczej wątpię bo Twój zachowuje się jak każdy inny źle zainicjowany).
  • #13 10380290
    misiu_mietowy
    Poziom 16  
    Napisalem w programie 1MHz, bo tego przeciez wymaga delay.h, zeby dobrze opozniac.
    Ustawiac fuse bity? Pierwsze slysze :( Po co mam przestawiac fusy? U mnie sa ustawione tak: hFuse = 0x99, lFuse = 0xe1, eFuse = brak, lock bit = 0x3f
    excray napisał:
    Jeśli odpowiedź to 2 x TAK to ja Ci więcej zdalnie nie pomogę
    To moze wpadne do Ciebie na wies? :D :D :D
  • #14 10391455
    misiu_mietowy
    Poziom 16  
    Juz dziala ! Wina byly zimne luty - jak ruszylo sie ukladem to bylo OK, innym razem byl klops. Jak sprawdzalem poprawnosc polaczen, to kabelki musialy sie zewrzec do padow i dlatego nie znalazlem bledow wczesniej...
REKLAMA