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 - wysyłanie danych do wyświetlacza LCD w jęz. C

aplov 22 Gru 2015 19:13 2199 31
  • #1 22 Gru 2015 19:13
    aplov
    Poziom 6  

    Witam.

    A więc będzie zwięźle.

    -Wyświetlacz 2x16 (sterownik HD44780)

    -uC Atmega8

    -Biblioteka radzia ( http://radzio.dxp.pl/hd44780/ )

    -Ustawienie pinów (nie jestem pewien poprawności moich zmian)

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Funkcja główna
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Problem jest taki, że po samej inicjalizacji wyświetlacza oprócz górnej linii "kratek" pojawia się też dolna, a przy próbie wypisania tekstu nie dzieje się nic.



    Przeszukiwałem forum, znalazłem ten program http://mikrokontrolery.net/avr_c_08.htm.. Dzieki niemu, wyświetlał sie migający kursor, ale tak samo przy próbie wypisania tekstu 0 odpowiedzi.

    0 29
  • #3 22 Gru 2015 19:23
    aplov
    Poziom 6  

    @szczywronek chodzi mi o samą poprawność kodu, dokumentacje atmegi mam wiec kabelki jeszcze potrafię podpiąć :D

    -1
  • #6 22 Gru 2015 21:31
    aplov
    Poziom 6  

    @michalko12 Bawię się w uC od 4 dni :), dzięki będę pamiętał.

    Dodano po 1 [godziny] 1 [minuty]:

    Niestety nadal mam problem..., wydaje mi się, że robię wszystko dobrze
    Atmega8 - wysyłanie danych do wyświetlacza LCD w jęz. C20151222_2..935.jpg Download (3.12 MB) Atmega8 - wysyłanie danych do wyświetlacza LCD w jęz. C20151222_2..011.jpg Download (2.89 MB) Atmega8 - wysyłanie danych do wyświetlacza LCD w jęz. C20151222_2..047.jpg Download (2.71 MB)

    skorzystałem z linku marekhab'a i wykorzystałem zamieszczony tam program, zmieniałem tylko ustawienia portów.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Tym razem, te "kwadraciki" jakby pulsują, nie wiem czy pomoże ta informacja...

    0
  • #8 22 Gru 2015 21:54
    aplov
    Poziom 6  

    przywleczone, ale multimetrem sprawdzałem połączenie :)

    0
  • #10 22 Gru 2015 22:03
    aplov
    Poziom 6  

    szczywronek napisał:
    Weź pod uwagę, że sprawdzając multimetrem dociskasz połączenia. Nie masz gwarancji, że to przewodzi bez dociskania sondą.


    Tak, zrobię. Kolejną próbę przeprowadzę po zlutowaniu pinów i dam znać czy pomogło.

    0
  • #13 22 Gru 2015 22:58
    aplov
    Poziom 6  

    Zmieniłem porty(Tak z premedytacją :D ). Masa i zasilanie są podłączone odpowiednio do pinów 1,16 i 2,15

    Dodano po 1 [minuty]:

    dondu napisał:
    Pytanie dodatkowe: Jaką częstotliwością taktujesz mikrokontroler i jak informujesz kompilator o tym fakcie?


    taktuje 8MHz, wykorzystuje do tego "#define F_CPU 8000000UL"
    dodam jeszcze, że pracuje w środowisku atmel studio 7

    0
  • #17 23 Gru 2015 17:56
    2675900
    Użytkownik usunął konto  
  • #18 23 Gru 2015 18:39
    aplov
    Poziom 6  

    Piotrus_999 napisał:
    A R/W do niczego nie podczepione?


    R/W jest podłączone pod port B1

    Załączam program z którego korzystam
    LCD.rar Download (2.4 kB)

    oraz rozpiskę pinów

    RS -> PB0
    RW -> PB1
    E -> PB2
    D4 -> PD0
    D5 -> PD1
    D6 -> PD2
    D7 ->PD3

    Poprawność połączeń można sprawdzić kilka postów wyżej.

    0
  • #19 23 Gru 2015 18:51
    Zubiik
    Poziom 11  

    Ja tak z ciekawości zapytam: co masz podłączone do PC6(ten żółty przewód) wiesz ze to jest reset? No i co z wolnymi pinami wyświetlacza są podłączone do masy?
    EDIT
    Czy kręcenie potencjometrem zmienia kontrast? Może podłącz diodę pod jakiś wolny pin i spróbuj ją zaświecić będzie wiadomo wtedy na 100% że mikrokontroler działa.

    0
  • #20 23 Gru 2015 18:53
    aplov
    Poziom 6  

    Zubiik napisał:
    Ja tak z ciekawości zapytam: co masz podłączone do PC6(ten żółty przewód) wiesz ze to jest reset? No i co z wolnymi pinami wyświetlacza są podłączone do masy?


    Przyjrzyj się dokładnie obok jest jeszcze jeden zielony kabel,a dopiero obok niego żółty :D
    Puste piny to D0 - D3, a pod mase podłączone są piny 1 i 16

    0
  • #21 23 Gru 2015 19:00
    Zubiik
    Poziom 11  

    podłącz koniecznie wolne piny do masy

    -2
  • #22 23 Gru 2015 19:16
    aplov
    Poziom 6  

    Zubiik napisał:
    Czy kręcenie potencjometrem zmienia kontrast? Może podłącz diodę pod jakiś wolny pin i spróbuj ją zaświecić będzie wiadomo wtedy na 100% że mikrokontroler działa.


    Tak, zmienia kontrast. Na pierwszej granicy "kratki" znikają natomiast na drugiej są całkowicie białe.

    Dodano po 12 [minuty]:

    Zubiik napisał:
    podłącz koniecznie wolne piny do masy


    Zrobione :), lecz bez zmian.

    0
  • #23 23 Gru 2015 19:20
    Zubiik
    Poziom 11  

    Masz tam wolny PC5 więc wklep ten kawałek kodu:
    DDRC|=(1<<PC5); //PC5 jako wyjscie
    PORTC|=(1<<PC5); //stan wysoki na pc5
    Wklej ten kod w funkcji głównej a do wyjścia PC5 przez rezystor do masy podłącz LEDa. Powinien zaświecić
    No i jeszcze sprawa z fusebitami, domyślnie atmega8 jest chyba na 1Mhz ustawiona i wg mnie taką częstotliwość powinieneś mieć podaną jako F_cpu

    0
  • #24 23 Gru 2015 19:45
    2675900
    Użytkownik usunął konto  
  • #25 23 Gru 2015 21:05
    aplov
    Poziom 6  

    Zubiik napisał:
    Masz tam wolny PC5 więc wklep ten kawałek kodu:
    DDRC|=(1<<PC5); //PC5 jako wyjscie
    PORTC|=(1<<PC5); //stan wysoki na pc5
    Wklej ten kod w funkcji głównej a do wyjścia PC5 przez rezystor do masy podłącz LEDa. Powinien zaświecić
    No i jeszcze sprawa z fusebitami, domyślnie atmega8 jest chyba na 1Mhz ustawiona i wg mnie taką częstotliwość powinieneś mieć podaną jako F_cpu


    Dobra, ustawiłem taktowanie na 1MHz w uC oraz w programie następnie dodałem do programu kod który podałeś.
    Na początku dałem pod po inicjalizacji wyświetlacza. Dioda w ogóle nie reagowała.
    Potem dałem kod przed inicjalizacją. Dioda się włączyła i mrugała jak szalona.

    Szczerze mówiąc to trochę dziwne i nie mam pojęcia co jest grane...

    Dodam ponownie cały kod
    LCD.rar Download (2.66 kB)
    Wszystko jest podłączone wg. tego schematu
    Atmega8 - wysyłanie danych do wyświetlacza LCD w jęz. CLCD_4bit_..RW.png Download (4.73 kB)

    0
  • #26 23 Gru 2015 21:18
    2675900
    Użytkownik usunął konto  
  • #27 23 Gru 2015 21:20
    aplov
    Poziom 6  

    Dobra jestem idiotą, kod cały czas działał, tylko z przyzwyczajenia ustawiałem atmege32 i to było powodem 2 dniowej walki.

    Tak czy siak...Dziękuje za każdą próbę pomocy i życzę Wesołych Świąt !

    0
  • #28 23 Gru 2015 21:22
    2675900
    Użytkownik usunął konto  
  • #29 23 Gru 2015 21:23
    aplov
    Poziom 6  

    Piotrus_999 napisał:
    A nie powinien :)

    wesołych swiąt.


    Z jakiego powodu nie powinien ?

    0
  • #30 23 Gru 2015 21:27
    Zubiik
    Poziom 11  

    Własnie Piotrus? dla czego nie powinien? kiedyś go uruchomiłem i nie pamiętam żeby były z nim problemy.
    aplov czasem dobrze jest odpocząć od tego czym się zajmujemy i spojrzeć po jakimś czasie "świeżym okiem" Powodzenia i Pozdrawiam!

    0