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.

HD44780 + 74HC595 + ATMEGA - Po pewnym czasie wyświetla śmieci

Kapslokk 08 Gru 2014 21:53 1551 9
  • #1 08 Gru 2014 21:53
    Kapslokk
    Poziom 5  

    Witam,
    próbuję od kilku dni użyć wyświetlacza na sterowniku HD44780 w moim projekcie. Na razie w celach testowych stworzyłem sobie program, który wyświetla mi jakiś napis na wyświetlaczu tzn w pętli głównej mam tylko:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Zaraz po włączeniu mikrokontrolera wszystko jest w porządku, niestety po pewnym czasie (2-3 minuty), na wyświetlaczu zaczynają się pojawiać smieci, a po kolejnych 2-3 minutach wszystko wraca do normy, i tak w kółko.
    Używam biblioteki do obsługi hd44780 którą znalazłem na pewnej polskiej stronie, niestety nie jestem w stanie wkleić linka.
    Zmieniłem w niej tylko funkcję LCD_LOCATE(); tak aby obsługiwała mój wyświetlacz (20x4). Atmega pracuje z częstotliwością 16MHz.W czym może być problem?

    0 9
  • #3 08 Gru 2014 22:50
    Kapslokk
    Poziom 5  

    HD44780 + 74HC595 + ATMEGA - Po pewnym czasie wyświetla śmieci Schemat tutaj - korzystam z gotowca póki co.
    DS podpięty pod PD0
    STCP pod PD1 i
    SHCP pod PD2

    main.c:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    hd44780.c
    Kod: c
    Zaloguj się, aby zobaczyć kod


    hd44780.h
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #4 10 Gru 2014 00:44
    boss87
    Poziom 11  

    Nie podoba mi sie ta biblioteka, stan wszystkich pinow siedzi w jednej zmiennej, nie jest obliczana tylko modyfikowana bit po bicie.

    char napis[20] = "asdasd";
    zmniejsz rozmiar tablicy do 8 np, chociaż to nie powinno miec znaczenia...

    kondensatory przy 74 i LCD 100nF masz?

    W czym kompilujesz? Może w kompilatorze masz FCPU inne ustawione, sprawdź.

    Krzaki zawsze są takie same ?

    Możesz dać w szereg oporniki 120ohm między uC - 74HC

    0
  • #5 10 Gru 2014 16:59
    Kapslokk
    Poziom 5  

    Ta biblioteka to tak naprawdę pierwsza, którą znalazłem.
    Zmiana rozmiaru tablicy na 8 nie pomogła.
    Tak, mam kondensatory.
    Kompiluje w WinAVR(w Programmer's Notepad klikam MakeAll i się kompiluje).
    Czy mam tam inne FCPU ustawione? Nie wiem, jak mogę to sprawdzić?

    Krzaki są zawsze takie same dodatkowo przesuwają się po ekranie w lewo. W wolnej chwili spróbuję dodać oporniki i w razie czego dam znać co i jak.

    0
  • #6 10 Gru 2014 17:16
    dondu
    Moderator Mikrokontrolery Projektowanie

    Kapslokk napisał:
    Kompiluje w WinAVR(w Programmer's Notepad klikam MakeAll i się kompiluje).
    Czy mam tam inne FCPU ustawione? Nie wiem, jak mogę to sprawdzić?

    Zmień środowisko z archaicznego na co najmniej AVR Studio, a najlepiej na Atmel Studio: http://mikrokontrolery.blogspot.com/2011/04/kompilator-i-srodowisko-programistyczne.html

    Wtedy zniknie wiele problemów w tym ten dot. F_CPU i makefile: http://mikrokontrolery.blogspot.com/2011/03/fcpu-gcc-gdzie-definiowac.html

    0
  • #7 10 Gru 2014 22:15
    Kapslokk
    Poziom 5  

    Zamówiłem dzisiaj programator zgodny z Atmel Studio - wiem, że można też korzystać w nim z mojego usbASP, ale stwierdziłem, że nie ma sensu się męczyć :) Jak uda mi się zaprogramować układ przez atmel studio to dam znać czy coś się polepszyło w sprawie mojego wyświetlacza.

    0
  • #8 11 Gru 2014 23:11
    wilkoquak
    Poziom 9  

    Witam,
    Odnośnie ostatniego postu - jeżeli zamówiłeś klon USB ISP MKII oparty na LUFA, to nie instaluj najnowszego Atmel Studio 6.2 SP1 - program będzie go widział, ale nie da się zaprogramować mikrokontrolera. Sam się na to naciąłem - rozwiązaniem okazało się zainstalowanie nieco starszej wersji Atmel Studio 6.2.1153

    PS jakbyś znalazł inne rozwiązanie to daj znać ;]

    0
  • #9 13 Gru 2014 20:36
    Kapslokk
    Poziom 5  

    Niestety, przesiadka na Atmel Studio nie pomogła mi w tym przypadku - ale nie ma tego złego :) Samo środowisko dużo przyjemniejsze od WinAvr. A co do samego problemu - być może znacie jakąś bibliotekę, którą mógłbym zastąpić aktualnie używaną? Mam na myśli oczywiście bibliotekę do obsługi HD44780 poprzez rejestr przesuwny.

    @wilkoquak - faktycznie, najnowsze Atmel Studio miało problem z moim programatorem, ale zainstalowanie starszej wersji pomogło :)

    0
  • #10 04 Sty 2015 00:07
    boss87
    Poziom 11  

    sprawdź F_CPU jakie jest ustawione w projekcie

    0