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



Teraz jest 3 kwi 2026, o 02:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 28 ] 
Autor Wiadomość
PostNapisane: 10 lis 2013, o 19:51 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

Witam,

Walczę juz z problemem trzeci dzień, prubuje wklejać rózne przykłady bibliotek wyświetlacza i ciągle nic. Przeglądam podobne problemy na google, na elektrona i dalej nic. Brakuje mi już siły.

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


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


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


Piny w LCD 20x4 mam podłaczone do AtMega8A portuD
Atmega na 3.3V
LCD na 5V
1 VSS -> -
2 VDD -> +5V
3 V0 -> środkowy pin potencjometru, którego lewy jest do -, a pravy do +5V
4 RS -> PD1
5 R/W -> PD2
6 E ->PD3
7~10 DB0~DB3 -> DO NICZEGO NIE PODŁACZONE
11 DB4 -> PD4
12 DB5 -> PD5
13 DB6 -> PD6
14 DB7 -> PD7
15 A -> -
16 K -> +5V

Na wyświetlaczu zamiast pojawiać się ten tekst z main.c pojawiają się zapełnione kwadraty w 1 i 3 linii.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 21:19 
Offline
Użytkownik

Dołączył(a): 19 lip 2012
Posty: 86
Lokalizacja: Lublin
Pomógł: 3

Brak informacji o wyświetlaczu :-p

Proponuję zastosować bibliotekę P. Mirka.

Miałem podobny problem. Mi pomogła zmiana ustawień:

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


Odczytaj z DTR wyświetlacza adresy początku każdej linii. I nanieś poprawki.

Mam nadzieje że pomoże.


Pozdrawiam Michał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 21:57 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

To jedyna informacja o moim wyświetlaczu
http://qc-lcd.com/Upload/file/20138519401472480.pdf

Wiem że najlepiej było by zastosować bibliotekę Pana mirka Kardasia, oglądałem te jego filmy na youtube, i to własnie one mnie zainspirowały, zacząłem kupować tą: płytkę prototypową, zasilacz, wyświetlacz. I zastanawiam się nad tymi dwoma książkami. Ale narazie nie chcę pakować się w koszty.

Myślę że kolejne sukcesy spowodowały by że się przełamię i zakupie te wszytskie ksiązki, ale jak dotąd to same porażki.

Włączam wyświetlacz a tu 1 i 3 linia i nic pozatym, a juz 4 dzień kombinuje:(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

A może jakiś schemat i zdjęcie jak to wszystko jest połączone
Możliwe że to może jakoś pomóc.

------------------------ [ Dodano po: 1 minucie ]

Dobra, nie widziałem opisu pinów ...

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 22:14 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Może źle się inicjalizuje ten LCD. Przed pętlą while dodaj pętle for, która 10 razy zamruga LED co 1 sekundę. Jak miganie będzie w porządku to masz dobre taktowanie i ustawienia projektu. Jak nie to wiadomo, gdzie jest błąd.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 23:50 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

W pliku .h zmieniłem
z tego:
#define LCD_LOCATE(x,y) WriteToLCD(0x80|((x)+((y)*0x40)), LCDCOMMAND)
na to:
#define LCD_LOCATE(x,y) WriteToLCD(0x80|((x)+((y)*0x20)), LCDCOMMAND)

i teraz mam wszystkie 4 linijki podświetlone kwadratami, ale tekstu dalej niemam:(

------------------------ [ Dodano po: 4 minutach ]

Krauser a mógł byś napisać składnię tej 10razy migającej diody, bo jestem początkujący i nie chce się ośmieszyć, z tego co się dowiedziałem z tych filmików Pana Mirka to jakos coś koło tego powinno wyglądać, ale nie chcę nic zepsuć więc wolał bym przykład.

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


ale niewiem czy to to i gdzie dokładnie to wstawić :(

załamka, strasznie trudne początki :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 00:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2012
Posty: 108
Lokalizacja: Giżycko
Pomógł: 6

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

Jak masz pierwszą książkę to tam masz w ćwiczeniach pokazane jak zapalać diody i wiele wiele więcej :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 00:20 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

5 razy się dioda zapaliła, i co teraz???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 08:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lip 2013
Posty: 420
Lokalizacja: Kraków
Pomógł: 17

Kiedyś używałem tych bibliotek do lcd ale mi wszystko ładnie działało

_________________
GreenBook i BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 10:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2012
Posty: 108
Lokalizacja: Giżycko
Pomógł: 6

alvarofun napisał(a):
W pliku .h zmieniłem
z tego:
#define LCD_LOCATE(x,y) WriteToLCD(0x80|((x)+((y)*0x40)), LCDCOMMAND)
na to:
#define LCD_LOCATE(x,y) WriteToLCD(0x80|((x)+((y)*0x20)), LCDCOMMAND)

i teraz mam wszystkie 4 linijki podświetlone kwadratami, ale tekstu dalej niemam:(


No dobra skoro Ci podświetla wszystko to może chodzi o kontrast??
Pokręć potencjometrem i daj znać czy coś ruszyło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 10:15 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Cytuj:
5 razy się dioda zapaliła, i co teraz???

1. Ale czy zgodnie z programem Artura LED był wygaszony przez 1 sekundę i zapalony przez kolejną i całość trwała 10 sekund ?
2. Ten for ma być umieszczony w kodzie twojego programu i na docelowej płytce. Jak nie masz wolnego pinu dla LED to możesz zamrugać podświetleniem.
Z funkcją _delay_ms wiążą się 2 ważne rzeczy i jak je zaniedbasz to opóźnienie nie będzie takie jak chcesz i LCD chociażby kod był dobry nie będzie działał poprawnie. Po pierwsze musisz wiedzieć na 100% z jaką częstotliwością pracuje mikrokontroler i po drugie musisz tą częstotliwość ustawić w opcjach projektu.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 10:56 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

Ad1. z programem Artura LED był wygaszony przez 1 sekundę i zapalony przez kolejną i całość trwała 10 sekund. w tym czasie świeciły się tylko 1 i 3 linia, po tym mryganiu (10sek) zaświeciło się 80kwadratów
Ad2. Ten for jest w kodzie twojego programu i na docelowej płytce. Pin dla LED to PB1

na mikro kontrolerze mam napisane ATMEL 130S Atmega8A-pu
Jag go programuje to w eclipse musze ustawiać na atmega8 bo jak zaznacze atmega 8a to podspodem wyswietla mi że avrdude nie obsluguje atmega8a

dodatkowo w wlasciwosciach projektu avrdude na karcie programmer configuration wybieram usbasp, a na karcie other nw linii other option daje -B 8,

w opcji target hardware mam mcutype atmega8, a frequence clock ustawione na 1000000

skąd mam wiedzieć jaką mam dokładnie częstotliwolslc mikrokontrolera wprowadzić??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 11:27 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

OK
Masz nowy procesor taktowany z fabryki wewnętrznie 1MHz = 1 000 000
Na razie zostaw jak jest, a później przestaw sobie na 8MHz za pomocą http://www.atnel.pl/mkavrcalculator.html wtedy szybciej się programuje i nie potrzeba tej opcji -B 8.
Program też jest dobry, bo u mnie działa.
alvarofun napisał(a):
Atmega na 3.3V
LCD na 5V

Nie możesz tego zmienić?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 11:40 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

ustawiałem już na mkavkalkulatorze na karcie fusy uproszczone, na 8mhz pozniej na karcie
programatorAVR w opcjach operacje avr dalem na zapis i w rodzaj pamieci zaznaczylem fusebity po czym dałem wykonaj, ale pozniej jak mi nic nie dzialalo to wrocilem do tego 1mhz, bopo przestawieniu na 8mhz po wgraniu programu caly czas swieca sie 1 i 3 linijka i nic wiecej sie nie zmiania, a jak mam na 1mhz to po incjalizacji wyswiatlacza 1 i 3 linijka gasną a zapalają sie wszytskie 80 kwadratów.

Ale co mam zmienić zasilanie wyświetlacza na 3.3V czy zasilanie procka na 5V???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 11:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2012
Posty: 108
Lokalizacja: Giżycko
Pomógł: 6

Zasilanie procka ustaw na 5V :)
I sprawdziłeś kontrast??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 12:00 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

zasilanie dałem na 5v i kręce potencjometrem i dalej tekstu niema, a potencjometr mam 140ohm to dobry???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 12:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2012
Posty: 108
Lokalizacja: Giżycko
Pomógł: 6

ajjjjjj no co ty 10k daj i sprawdź :)
powinno ruszyć :D

Edit:
>>Tutaj<< masz super schemat i opis co i jak na przyszłość :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 12:14 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

niestety w swoich szpejach nie znalazłem innego potencjometru, jaki dac w zamian opornik???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 12:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2012
Posty: 108
Lokalizacja: Giżycko
Pomógł: 6

Oj to ciężko określić dla każdego wyświetlacza jest inaczej albo metodą prób i błędów się baw albo odlutuj z jakiegoś urządzenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 21:48 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

Jakm wykonać ten clean
?????

Bulid tzn wgrać nowy program do microc tak???



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 23:00 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

A czy moje fusebity są ok?

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 00:37 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Fusebity są w porządku.
Clean znajduje się w pasku głównym. Wybierasz Project->Clean. W nowym okienku wybierasz Clean projects selected below i w polu poniżej zaznaczasz ptaszkiem swój projekt, a na samym dole zaznaczasz jak chcesz Start build immediately i wybierasz Build only selected project.
Tak należy postępować jeśli w opcjach projektu zmieniasz sobie częstotliwość na inną.
Build tworzy plik wynikowy dla procesora (przycisk młotek). Wgrywanie tego pliku to kolejna czynność (przycisk AVR).

Wracając do meritum. Skoro miałeś połączenie 2 układów pracujących na różnych napięciach to mogło dojść do uszkodzenia jednego z nich. Jak już zmieniłeś zasilanie procesora na 5V to może przepnij się na inny port (i zmień program). Co do potencjometru regulacji kontrastu to jego wartość nie ma większego znaczenia. Przecież to dzielnik napięcia. Jego wartość nie powinna być przesadnie duża, bo obciążony dzielnik zmieni swoje napięcie na wyjściu. Żeby dobrze ustawić kontrast nie potrzebujesz procesora (możesz wgrać program z funkcją main, która zawiera tylko pętle nieskończoną). Pokręć potencjometrem, aż kwadraty znikną i z powrotem i zakończ jak tylko się pojawią.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 01:18 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

Przepiąłem na inny port i inne piny, zmieniłem program w pliku .h, zrobiłem clear, skąpilowałem(młotkiem), wgrałem do procesora(avr) i dalej tylko 1 i 3 linijka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 07:18 
Offline
Użytkownik

Dołączył(a): 19 lip 2012
Posty: 86
Lokalizacja: Lublin
Pomógł: 3

alvarofun napisał(a):
... i dalej tylko 1 i 3 linijka


I co dalej? Kwadraty czy prawidłowe znaki?
Wyrażaj się jasno.

Jeżeli w liniach 1 oraz 3 pojawiają się poprawne znaki tzn że adresowanie linii jest nieprawidłowe.
Jeżeli nie posiadasz dobrej DTR-ki do wyświetlacza musisz sobie poradzić metodą prób i błędów w określeniu adresów początku linii wyświetlacza.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 08:17 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

cały czas te cholerne kwadraty :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 11:08 
Offline
Użytkownik

Dołączył(a): 10 lis 2013
Posty: 48
Pomógł: 0

Hej chłopaki, jak wam powiem co miałem żle to mnei chyba zabijecie...

przy lutowaniu miałem takie same kolory dla DB3 jak i DB4, oznaczyłem sobie jeden izolacjążeby sie później nie pomylić przy podłaczaniu, i właśnie w tym miejscu się pomyliłem, tego z izolacją to był DB3 a jego podpiąłem zamiast DB4.

Dzięki wszytskim za pomoc i przepraszam za ten swój chaotyzm...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 12:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 kwi 2012
Posty: 108
Lokalizacja: Giżycko
Pomógł: 6

Hehe umarłemu się nie zdarzy :D
Najważniejsze że udało Ci się poprawić błąd.
Odnośnie połączeń na płytkach zawsze sprawdzaj 10 razy.
A jak dalej coś nie działa to sprawdź jeszcze raz kabelek po kabelku ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 13:12 
Offline
Użytkownik

Dołączył(a): 19 lip 2012
Posty: 86
Lokalizacja: Lublin
Pomógł: 3

Każdy musi tego doświadczyć :-)

Wtedy człowiek uczy się porządku :-p


Miłej zabawy z wyświetlaczem.
To teraz czekamy na jakąś bibliotekę do przesuwanego menu 8-)


Pozdrawiam Michał



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: 28 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO