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.

Atmega/HD44780 - Dziwne symbole na wyświetlaczu

xujemuje 05 Sty 2017 19:20 705 14
  • #1 05 Sty 2017 19:20
    xujemuje
    Poziom 9  

    Witajcie,
    problem dotyczy może nie do końca wyświetlacza, ponieważ on jest tylko celem, a procesora. Niejednokrotnie, po podłączeniu przez port USB programatora z zasilaniem płytki, na wyświetlaczu wywalane są albo symbole zawarte w załączniku, albo dwie linie kratek, czyli nic, albo w końcu zaskoczy program. Z czym może być problem? Z filtrowaniem zasilania?
    Atmega/HD44780 - Dziwne symbole na wyświetlaczuunname..jpg Download (28.77 kB)

    0 14
  • #2 05 Sty 2017 20:05
    2675900
    Użytkownik usunął konto  
  • #3 05 Sty 2017 20:08
    xujemuje
    Poziom 9  

    O co chodzi z timingami z inicjalizacją? A może być to kwestia zbyt szybkiej linii SCK?

    0
  • #4 05 Sty 2017 20:10
    2675900
    Użytkownik usunął konto  
  • #5 05 Sty 2017 20:16
    xujemuje
    Poziom 9  

    lcd_init();
    lcd_cls();
    wyswietlPowitanie();

    to wszystko w mainie. Miałem problemy do tej pory z programatorem, którym zablokowałem sobie procesor po ustawieniu zew. rezonatora. Musiałem odblokowywać procka za pomocą ne555 próbując wstrzelić się w okno z sygnaturą Atmegi32, bo avrdude za każdym połączeniem wyrzucał inny MCU. Niby teraz działa na wewnętrznym oscylatorze 1MHz.

    0
  • #6 05 Sty 2017 20:47
    2675900
    Użytkownik usunął konto  
  • #7 05 Sty 2017 20:50
    xujemuje
    Poziom 9  

    Z tym problemu, ręczę, nie ma. Biblioteka mi wcześniejszym czasem działała bez problemu, po sensacjach z tymi fusami coś mi nie halo.

    0
  • #8 05 Sty 2017 21:36
    tronics
    Poziom 36  

    Może procek ma inne taktowanie niż zadeklarowane w programie przez to jak koledzy wyżej napisali rozjechały się timingi ;)

    0
  • #9 05 Sty 2017 21:40
    2675900
    Użytkownik usunął konto  
  • #11 10 Sty 2017 14:46
    xujemuje
    Poziom 9  

    Zmiana taktowania procesora, z 1MHz na 8MHz wewnętrznego oscylatora pomogla.

    0
  • #13 10 Sty 2017 21:04
    xujemuje
    Poziom 9  

    No właśnie nie żartuje, sam na tym zęby zjadałem, żeby dojść, co jest nie tak. Problemy były, gdy osc wew był ustawiony na 1MHz. Przy 8MHz działa jak ta lala.

    0
  • #15 10 Sty 2017 21:07
    tronics
    Poziom 36  

    Cytat:
    Może procek ma inne taktowanie niż zadeklarowane w programie

    5 dni temu.
    Zatem... no kidding ;) Te MCU są taktowane fabrycznie 1MHz (8MHz wewnętrzny oscylator i fuse CLDIV8 czyli dzielnik przez 8). Kolego w trakcie pisania obsługi LCD musiałeś mieć ten fusebit nieaktywny zatem taktowanie wynosiło 8MHz i tyle było zadeklarowane w projekcie (F_CPU).
    Po przygodach z fuse wróciłeś do fabrycznego 1MHz i już cała komunikacja poszła w maliny. Oprócz błędnego podłączenia to była w zasadzie jedyna sensowna możliwość i nie trzeba było "zjadać zębów" tylko przyjrzeć się właśnie ustawieniom zegara w projekcie i w samym mikrokontrolerze.

    0