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

ATMEGA8 i wyswietlacz 2 * 16 - dziwne objawy

chablak 19 Lut 2010 21:31 1935 16
  • #1 7720829
    chablak
    Poziom 11  
    Witam

    Ostatnio zacząłem przygodę z Atmega8, zaopatrzyłem się w książkę "Programowanie mikrokontrolerów AVR w języku BASCOM" Marcina Wizania. W jednym z przedstawionych tam przykładów jest schemat oraz program do obsługi wyświetlacza 2 * 16. Zrobiłem układ zgodnie ze schematem z książki oraz przepisałem program do kompilatora. na początku podałem napięcie na sam wyświetlacz bez atmegi i ku mojemu zaskoczeniu zapaliło się od razu podświetlenie wyświetlacza oraz jedna z lini była cała zamalowana (z tego co wyczytałem w książce to były wyświetlone znaki o kodzie FF), po podłączeniu atmegi z wgranym programem nic nie uległo zmianie. W symulatorze BASCOM-AVR program działa poprawnie tzn wyświetla się tekst tak jak powinno. Przed uruchomieniem miałem małe problemy z zasilaniem (zamieniłem przez przypadek + z - na zasilaniu układu i nie wiem czy to nie uszkodziło wyświetlacza. Może ktoś kiedys miał podobne objawy i wie co może być przyczyną tego?

    Pozdrawiam
  • #2 7720865
    _Robak_
    Poziom 33  
    Jak masz jedną linię czarną to nie jest źle ;] Znaczy że działa, tylko nie przechodzi inicjalizacji, musisz szukać błędu w tym kierunku.
  • #3 7720885
    chablak
    Poziom 11  
    A możesz powiedzieć co dokładnie powinienem zrobić. Zaczynam dopiero zabawę z AVR-ami a tym bardziej z wyświetlaczami LCD. dziwi mnie tylko dlaczego nawet jak się podepnie samo zasilanie do wyświetlacza czy podłączy się też atmege to na wyświetlaczu jest to samo.
  • #4 7720905
    _Robak_
    Poziom 33  
    Jest to samo bo wyświetlacz się nie inicjalizuje. W bascomie jest to tak proste że ciężko coś skopać, szczególnie że w książce jest schemat ;)
  • #5 7720932
    chablak
    Poziom 11  
    czyli chcesz powiedzieć że to kwestia programu? Przepraszam ale nie bardzo rozumiem.
  • #6 7720981
    alien_audio
    Poziom 21  
    A czy kolega w programie przyporządkował odpowiednie piny procesora do pinów wyświetlacza ?
  • #7 7721049
    chablak
    Poziom 11  
    w programie jako tak to nie ale w ustawieniach kompilatora tak. W programie tego nie uczyniłem ponieważ w momencie gdy przepisuje kod programu z książki to wywala mi błąd w czasie właśnie konfiguracji a mianowicie

    
    config lcdpin = pin, Db4 = portc.3, 
    Db5 = portc.2, Db6 = portc.1, 
    Db7 = portc.0, E = portc.4,
    Rs = portc.5
    
    
    


    wywala mi błąd Error : 35 - 3 Parameters Expected (że niby spodziewało się 3 parametrów.

    Mam pytanie ale co ma wspólnego program w atmedze skoro nawet jak jej niema (wyjmę ją z podstawki) to na wyświetlaczu są te same elementy co gdy jak ona jest?
  • #8 7721116
    m.bartczak
    Poziom 16  
    Cytat:
    am pytanie ale co ma wspólnego program w atmedze skoro nawet jak jej niema (wyjmę ją z podstawki) to na wyświetlaczu są te same elementy co gdy jak ona jest?


    Proste - wyświetlacz niezainicjalizowany pokazuje rząd czarnych kwadracików. Jeśli Twoja atmega nic nie inicjalizuje, nie będzie różnicy.
  • #9 7721160
    Szucio
    Poziom 14  
    1. Rząd czarnych prostokątów oznacza, że wyświetlacz działa.

    2. Aby korzystać z wyświetlacza należy go ZINICJALIZOWAĆ.

    3. Robi to się na początku korzystania z niego. Aby go zinicjalizować należy odpowiednio go podłączyć do uC oraz odpowiednio zaprogramować uC aby ten go inicjalizował.

    4. Po inicjalizacji ekran robi się pusty i można z niego korzystać.

    5. BASCOM chyba może inicjalizację robić sam i wtedy nie musisz się o nią martwić. Musisz się za to martwić o:
    1) poprawne podłączenie wyświetlacza do uC
    2) poprawne ustawienie odpowiednich pinów w programie (muszą się zgadzać z tym co jest w rzeczywistości)
  • #10 7721213
    alien_audio
    Poziom 21  
    Witam.
    Instrukcje konfiguracji wyświetlacza musi być zapisana w jednej linijce.
    Zapisz w jednej linijce całość i będzie OK.
    Oczywiście należy piny wyświetlacza podłączyć zgodnie z tą konfiguracją.
  • #11 7722775
    chablak
    Poziom 11  
    alien_audio dzięki poprawiłem ta linie i jest ok.

    a może mógłby ktoś zamieścić plik *.hex albo przykładowy kod programu do wyświetlenia nawet pojedynczego znaku? Może problem tkwi w kodzie zamieszczonym w książce...

    Oto on:

    
    $regfile "m8def.dat"
    $crystal = 8000000
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
    
    
    
    
    
    Dim I As Byte
    
    
    
    Cls
    Lcd "* Bascom AVR *"
    
    Wait 10
    Lowerline
    
    Wait 1
    Lcd "  Przesuwaj  "
    
    Wait 1
    For I = 1 To 10
    Shiftlcd Left
    Waitms 500
    Next I
    
    Locate 2 , 2
    
    Lcd "*"
    
    Wait 1
    Shiftcursor Right
    
    Lcd "%"
    
    Wait 1
    Home Upper
    
    Lcd "Inny tekst"
    
    Wait 2
    Cursor Off Noblink
    Wait 2
    Cursor On Blink
    Wait 2
    Display Off
    Wait 2
    Display On
    
    Deflcdchar 0 , 31 , 31 , 31 , 31 , 30 , 28 , 24 , 16
    Deflcdchar 1 , 1 , 3 , 7 , 15 , 31 , 31 , 31 , 31
    
    Cls
    
    Lcd Chr(0) ; Chr(1)
    
    Wait 1
    Cls
    
    _temp1 = 56
    
    rcall _write_lcd
    
    Wait 2
    Lowerline
    I = 150
    
    Lcd I
    
    
    End
    
  • Pomocny post
    #12 7724209
    alien_audio
    Poziom 21  
    Witam

    Oto prosty przykład:

    $regfile "m8def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5


    Cls ' kasowanie wyświetlacza
    Lcd " TEST " ' wyświetli TEST
    Lowerline ' w dolnym wierszu
    Lcd " OK " ' wyświetli OK
    stop
  • #13 7725379
    chablak
    Poziom 11  
    Witam

    Skompilowałem Twój kod oraz wgrałem go na procesor i gdy uruchomiłem układ z wyświetlaczem na wyświetlaczu nic się nie pojawiło z tego co powinno czyli nie wyświetlił się napis "Test ok". Czy jest możliwe że mimo że się świeci i wyświetla tą dolną linie to jest uszkodzony? Coś mi się wydaje że będę musiał kupić nowy wyświetlacz...
  • #14 7725435
    alien_audio
    Poziom 21  
    Witam.
    Raczej nie, prawdopodobnie wyświetlacz jest nieprawidłowo podłączony do procesora. Jak możesz daj rysunek jak podłączyłeś wyświetlacz,
    który pin gdzie podłączyłeś.
  • #15 7726720
    chablak
    Poziom 11  
    Reszty pinów z wyświetlacza nie podpinałem (tak mam w książce). Rezonatora kwarcowego w atmedze też nie mam, ale program na wyświetlaczu LED alfanumerycznym mi działa więc chyba rezonator w tym przypadku nie jest wymagany.

    ATMEGA8 i wyswietlacz 2 * 16 - dziwne objawy
  • Pomocny post
    #16 7726848
    Wojtek75
    Poziom 24  
    chablak napisał:
    Reszty pinów z wyświetlacza nie podpinałem (tak mam w książce).

    Eee... a ja wyraźnie widzę, że pin R/W wyświetlacza na schemacie jest ściągnięty do masy.
    chablak napisał:
    Rezonatora kwarcowego w atmedze też nie mam

    W takim razie biorąc pod uwagę to:
    $crystal = 8000000

    napisz jak ustawiłeś fusy CKSEL3..0?
  • #17 7727038
    chablak
    Poziom 11  
    Wojtek75 masz racje, mój błąd po podłączeniu linii R/W do masy na wyświetlaczu pojawił się napis tak jak powinien:) Dziękuje za pomoc wam

    Pozdrawiam
REKLAMA