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 ATMega32] - Opóźnienia a kwarc 16Mhz

faziil 23 Lip 2013 13:13 1290 4
  • #3 23 Lip 2013 13:31
    faziil
    Poziom 15  

    Deklaracja stałej F_CPU nie daje żadnych efektów. Problem leży po stronie biblioteki w której opóźnienia nie są zmieniane dynamicznie(czyt. zależnie od F_CPU)

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #4 23 Lip 2013 13:33
    dondu
    Moderator Mikrokontrolery Projektowanie

    faziil napisał:
    Dodam że wiem co mówię bo deklaracja stałej F_CPU nie daje żadnych efektów.
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Chyba jednak nie wiesz i nawet nie przeczytałeś artykułu, którego do link Ci podałem.
    Zrób to więc, zrozum i zastosuj, a wyświetlacz ruszy, a Ty zrozumiesz, że problem leży po Twojej stronie, a nie:

    faziil napisał:
    Problem leży po stronie biblioteki ..

    0
  • #5 08 Sty 2017 16:43
    Kryhoo82
    Poziom 1  

    Otóż właśnie miałem ten sam problem. Na 8 MHz śmigał, na 16 MHz czasem się zainicjował, czasem nie. A jeżeli już to wyświetlał błędy co kilka znaków. Podłączyłem oscyloskop i zdziwiły mnie znaczne różnice czasowe na pinach wyświetlacza przy różnych taktowaniach.

    Problem tkwi w jednej z funkcji i ujawnia się dopiero przy 16 MHz. Chodzi o bibliotekę w HD44780_4bit_norw.zip (autor ma na swojej stronie 4 różne wersje biblioteki do tego wyświetlacza, w które jeszcze nie zaglądałem.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Po wysłaniu pierwszych 4 bitów danych brakuje opóźnienia, które następuje dopiero po wysłaniu kolejnych 4 bitów. Wystarczy kopiuj/wklej, zapisz i Buid All.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    ... i wszystko śmiga.

    0