Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 kwi 2026, o 18:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 31 lip 2014, o 22:58 
Offline
Użytkownik

Dołączył(a): 20 lip 2014
Posty: 30
Pomógł: 0

Witam, mam problem z LCD 2x16 HD444780. Wyświetlacz działa ( świecą się wszystkie kwadraciki w górnej linii ), ale jeżeli chce wyświetlić jakiś znak lub tekst jest bez zmian, przejrzałem wszystkie biblioteki i nadal nic. Dodaje schemat i kod.

Schemat:

Obrazek

hd44780.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


hd44780.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


@edit - nie jestem pewien, czy dobry dział, jeżeli nie, to proszę o przeniesienie ;)
@edit2 - Przepraszam za moje niezapoznanie się z dodawaniem tematów, obrazków, sytnaxów :( Głupio wyszło, że Pan Mirek jeśli mogę sobie pozwolić musiał mnie poprawić. Jeżeli chodzi o F_CPU już nigdy nie dodam go w kodzie :) A teraz do schematu, to być może nie jest on najlepszy i nie ma w nim zasilania procka, gdyż chodziło mi tu tylko o przedstawienie połączeń. Chyba już wszystko w tym temacie poprawiłem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 00:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Program co niecałą sekundę powinien się resetować, gdyż nie ma głównej nieskończonej pętli programu "while (1)".

Pierwsza linia kwadratów na wyświetlaczu wskazuje nie zainicjalizowany sterownik LCD.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 12:02 
Offline
Użytkownik

Dołączył(a): 20 lip 2014
Posty: 30
Pomógł: 0

Dodałem while(1) i nadal nic, próbowałem już wielu bibliotek i gotowych plików main.c i w większości były while, ale efekt zawsze taki sam, czarne kwadraty ;/ Czytając tematy innych ludzi odnośnie tego problemu to wielu pomogło wyłączenie opcji w fusach np. JTAG. Posiadam Atmege 328P, byłbym wdzięczny jak ktoś by wytłumaczył jak wyłączyć JTAG, czytałem też, aby zmienić taktowanie na 1 MHz, w eclipse mam ustawiony 1 MHz, ale wewnętrzny oscylator na 8 MHz, gdyż nie mam więcej opcji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 12:12 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Widzisz bo while(1); to nie jest lekarstwo na kwadraciki :( ... owszem - może być i jest bardzo ważne ... ale to TYLKO jeden z wielu błędów które w takim kodzie popełniasz .... i wtedy naprawienie jednego z błędów nie rozwiąże całej sytuacji ... dlatego kompletnie nie ma co tak pisać:

RexioManTM napisał(a):
próbowałem już wielu bibliotek i gotowych plików main.c i w większości były while, ale efekt zawsze taki sam, czarne kwadraty


bo to oznacza TYLKO jedno, nie próbujesz się nauczyć programować w C od PODSTAW - tylko na wyrywki i stąd takie KŁOPOTY ... czy tak się nie da nauczyć ? ależ da się - tylko przeważnie zajmie to kilka hektolitrów czasu - przez co nieraz można się szybciej zniechęcić do tego całego programowania

za to gdy się rozpoczyna od PODSTAW i po kolei . gdy się rozumie TAK PODSTAWOWĄ rzecz jak pętla główna programu - a ty nawet z tego sobie nie zdajesz jeszcze sprawy, to wtedy nagle nauka idzie szybciej i wszystko staje się jasne. A co ważniejsze zaczyna to być przyjemne i wciągać ;)

dlatego polecam ci zacznij od książki:

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

bo z tego co piszesz - to sądzę, że jej nie masz jeszcze - a jeśli masz - to pewnie pominąłeś mnóstwo rozdziałów albo jeszcze nie zajrzałeś co ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 12:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Atmega328 nie ma JTAG. Zagadnienie z JTAGiem dotyczy AT32, AT16 itp.

Jeśli wewnętrzny oscylator masz ustawiony na 8MHz to w Ecplipse też ustaw na 8MHz.
Niezależnie od tego jaki jest zegar to ustawienie w prcesorze (fizyczne) musi się zgadzać z tym co ustawiany w Ecplise.
Inaczej opóźnienia _delay_ms (us) będą żle liczone. I to pewnie jest Twój problem, bo z opisu wynika, że LCD się nie inicjalizuje



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 12:39 
Offline
Użytkownik

Dołączył(a): 20 lip 2014
Posty: 30
Pomógł: 0

Co do książki, to oczywiście, że zakupie ją w najbliższym czasie, lecz niestety brak pieniążków w portfelu, ale daje słowo Panie Mirku, że ją zakupie i przeczytam całą z uwagą na każdy szczegół. Wiem, że daleko bez tej książki nie zajdę, lecz skoro posiadam takowy wyświetlacz chciałem spróbować coś na nim wyświetlić. Nawet jak to mi się uda to i tak nie zrobi nic więcej, ponieważ za wiele w AVR-GCC nie potrafię. Tak jak pisałem, chcę tylko dowiedzieć się dlaczego nie inicjalizuje się mój wyświetlacz :)

JUPI - udało mi się wyświetlić prosty napis TEST z odczytem flagi zajętości, lecz napis mruga, czy tak powinno być?
Ok, już sobie poradziłem, następna rzecz, którą zrobię to zakupienie książki Pana Mirka :) Temat można zamknąć/kosz :)



Ostatnio edytowano 1 sie 2014, o 13:03 przez RexioManTM, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 12:59 
Offline
Użytkownik

Dołączył(a): 19 sty 2013
Posty: 322
Pomógł: 22

Witam

Pomogę Ci odpalić ten wyświetlacz. Odpalimy to na bibliotekach autorstwa Radosława Kwiecienia http://radzio.dxp.pl/hd44780/. Pobierz sobie biblioteki znajdujące się pod linkiem Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości z dowolnym przypisaniem linii sterujących. W pliku o nazwie HD44780.h dokonasz zmiany konfiguracji portów w ten sposób:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tutaj masz jedną z możliwości sprawdzenia tego wyświetlacza:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Przypominam o ustawieniu właściwie fuse bitów w Eclipse oraz w MkAvrCalculator, oraz ustawieniu kontrastu wyświetlacza. Jeżeli wtedy wyświetlacz nic nie wyświetli to daj znać. Zrób jakieś zdjęcia jak podłączyłeś ten wyświetlacz.

Pozdrawiam
Elektronik



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 13:11 
Offline
Użytkownik

Dołączył(a): 20 lip 2014
Posty: 30
Pomógł: 0

Dzięki, ale już sobie poradziłem i to właśnie na tych bibliotekach tyle, że z odczytem flagi zajętości ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO