ATNEL tech-forum
https://forum.atnel.pl/

LCD hd44780 - makra klasyka problemu :)
https://forum.atnel.pl/topic22486.html
Strona 1 z 1

Autor:  feniks_ [ 11 sie 2019, o 20:04 ]
Tytuł:  LCD hd44780 - makra klasyka problemu :)

Witam, rozgryzam biblioteke do LCD hd44780 z BB i wydaje mi się żę kumam makra . Myśle żę każdy kto przerabiał wie o które chodzi , ale rzecz w tym , że albo cos przeoczyłęm albo to dopiero bd smigać jak sie wszystko napisze bo poki co kompilator wywala mi błędy :/ Pisze bibloteke juz sam w oparciu o kod dodany do ksiązki i o bb i definiując porty odpowiednio makrami tak jak ponizej w kodzie , kompilator wrzeszczy o bledzie . Dlaczego ? Coś trzeba dorzucić do tego ? Będe wdzięczny za odp mimo , że pewnie niektorzy juz nie mogą słuchać o tych samych problemach przy kodzie BB :D
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  JarekB [ 11 sie 2019, o 20:33 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

No dobrze, a gdzie komunikat kompilatora?

Autor:  feniks_ [ 11 sie 2019, o 20:35 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

syntax error tylko...trzeba deklarować takie makra wczesniej jakoś ? CZy pisząc takie makro majac zadeklarowane juz wszystkie zmienne w nawiasach trzeba jeszcze cos przed takimi makrami deklarowac ?

Autor:  JarekB [ 11 sie 2019, o 20:40 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Może jednak wklej co dokładnie mówi kompilator.

Autor:  feniks_ [ 11 sie 2019, o 20:45 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Obrazek
to wystarczy ? bo tak jako tako w konsoli nie ma za wiele a w zasadzie nic

------------------------ [ Dodano po: kilkunastu sekundach ]

tam przy linijkach kodu podkreslonego sa pytajniki jeszcze

Autor:  JarekB [ 11 sie 2019, o 21:08 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Czy definiowałeś gdzieś porty i piny?
Na 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.

Autor:  feniks_ [ 11 sie 2019, o 21:13 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

tak mam wszystkie wedle ksiazki nawet , zastanwia mnie sam przyklad z ksiazki #define DDR(x) SDDR(x) #define SDDR(x) (DDR##x) - to przyklad czy tak po porstu musi wygladac kod ? Ma zostac zadeklarowane to sklejenie ?

Autor:  Adam12 [ 11 sie 2019, o 22:03 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Patrząc na błędy to ja tu widzę bardziej jakiś problem z konfiguracją Eclipsa.

Autor:  Marhef [ 12 sie 2019, o 08:17 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

feniks_ napisał(a):
Ma zostac zadeklarowane to sklejenie ?
Tak, ma zostać tak, jak jest w książce. A dlaczego - poszukaj. Albo na blogu albo na forum Mirek to tłumaczył

Autor:  feniks_ [ 12 sie 2019, o 16:18 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

No tak znalazłem ten artykuł ale chyba jestem za duży nieogar :P Co musze zdeklarować wczesniej , żeby działała mi linijka makra przykładowo
DDR(LCD_D7PORT) |= (1<<LCD_D7) ? Myślałem , że względem wzoru z ksiązki trzeba napisac # define DDR(x) (DDR##LCD_D7PORT) ale to nie do końca tak :/

Autor:  feniks_ [ 12 sie 2019, o 21:56 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Powiem szczerze , że sporbowąłem sobie to zrobić na prostym przykladzie makra na zwyklym miganiu ledem jednym i smiga mi to :) W porjekcie ogolnie zamieszczam te makra , w pliku naglowkowym i to tam mi kompilator krzyczy. Z czego to wynika ? W próbie z ledem wszystko umieściłem w main.c i funguje odrazu ale zastanawia mnei czemu tak :/ W każdym razie dzieki już za wszelkei sugestie , wiuem , że poruszam temat senty raz . Na słynnym forum juz dawno by mi temat zamkneli :D

Autor:  Marhef [ 13 sie 2019, o 05:29 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

A nie masz tak, że #define masz w innym pliku niż to, co wstawiłeś w pierwszym poście?

Autor:  micky [ 13 sie 2019, o 06:21 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Obejrzyj filmik Mirka o podziale projektu na pliki.

Autor:  feniks_ [ 14 sie 2019, o 19:47 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Chętnie obejrze :) Ale to jest jakiś taki ?:)

Autor:  feniks_ [ 16 sie 2019, o 15:46 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Witam ponownie, troche ogarnałem ta biblioteke , wydaje mi się , żę ją ogarniam ale i tak BB jako złota księga zawsze musi być u mnie pod ręka gdyby coś :) Ale mam innego rodzaju prblem - kod P . Mirka nie działą niestety nie wiem czemu :/ zrobiłem foto odrazu połączeń do portów atmegi oraz zworek pod lcd żeby było odrazu jasne czy coś mam nie tak :) U mnie wystawinie stanu wysokiego na 7 pin portu A , nie zmienia czy mam podswietlenie cyz też nie , nadal lcd jest wygaszony i wyswietla kwadraciki . Tak na dobrą sprawę nei wiem czemu , ale czy to chodzi o to , żę odpalam zestaw z USB i może coś nie wyrabiać ? Będe wdzięcnzy za jakieś sugestie :)
Obrazek

Autor:  micky [ 16 sie 2019, o 18:59 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Biblioteki Mirka działają na 100 procent. Czy przypadkiem dobrze ją ustawileś? Kontrast regulowałeś?

Autor:  feniks_ [ 16 sie 2019, o 19:32 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Ja oczywiscie wiem ze działaja bo gdyby tak nie bylo to juz dawno by juz bylo wszystko poprawione :) Biblioteka wymaga jakiegos wiekszego ustawiwnia oprocz wystawienia na RW - 1 lub 0 ? Plus dodatkowo podswietlenei na lcd na odpowiednim pinie stan wysoki ? Bo ja tak mam ze na RW == 1 w bibliotece i w mainie wszystkie piny sa jako wyjscia na stanie wysokim w mainie jak w oryginale dolaczanym do BB . Zatem ? Kontrast oczywiscie regulowalem i sa kwadraciki wiec to na pewno jest ok, rzecz w tym , że wystawiajac stan wysoki na pin podswietlenia nawet z jakiegokolwiek portu innego czy to B,C czy D , to on sie nie zapala :/ Ale jak zrobie zworka na stałe podświetlenie to się zapala....zatem tak jakby cos program nie hulal:/ Oczywiscie wszystko w porcie A podlaczone wedle biblioteki . Wiecie...ja wiem , żę to coś po mojej str jest nie tak....ja wiem , żę Pan Mirek robi świetną robote i nei mam watpliwosci - nei raz sie przekonalem o tym :) I wiem , ze niejedna osoba juz walczyla jak ja z tym tematem....wiem tez ze czasem warto nei powielac problemu ale....no czasem kazdy problem jest inny....i ja myslac ze mam wszystko ok , pewnie nie widze czegos ( najtrudniej jest znalesc wlasne bledy) i za chwile wskoczy P. Mirek , zaśmieje się i będzie to hulac :D a ja sobie pomysle ze jak zwykle dalem plame bo to bylo proste :P oczywiscie w miedzy czasie szukam problemu :) Jak namierze to dam znac tez :)

------------------------ [ Dodano po: 18 minutach ]

Tak zaczalem analizowac problem dalej i stiwerdzilem ze chyba mam cos nei tak z tymi projektami z BB...nie mialem ich w miejscu reszty projektow .... teraz je skopiowalem do reszty ale....ni w zab nie moge ich znalezc poprzez Eclipse :x gdzie to siedzi ?:P

------------------------ [ Dodano po: 32 minutach ]

no i tak ...Pan Mirek się będzie smiał , ja w sumie też i reszcie też zdradzam , że śmiga , bo musiałem przejrzeć jak się importuje biblioteki czy projekty z workspace :P człowiek już mądrował , że wszystko umie i ma :) biblioteka śmiga pięknie łącznie z podświetleniem :P dziękuej za cierpliwość i przepraszam za zamęt :) temat mam nadzieje do zamknięcia :D

Autor:  feniks_ [ 15 wrz 2019, o 18:54 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Witam ponownie , testuje sobie biblioteke P. Mirka na calego i dorzucam jakieś funkcjonalnosci ,by sobie pewne rzeczy utrwalic . Postanowilem za pomocna przyciskow rozgrywac jakies zdarzenia na LCD aktualnie . Pomyslalem , że jednym przyciskiem bede coś tam robił , drugim coś innego a trzecim kolejna rzecz. Na początek pomyslalem jak to zrobić by procek sprawdzal dosyc szybko i sprawnie ze dany przycisk jest wcisniety . Pomyslalem - zrbie to w przerwaniach na if moze docelowo na switchu . Moze to zła droga ale po to włąsnie pisze :) Rzecz się tyczy tego , że zrobiłęm sobie by po przycisnieciu jednego przycisku mial sie LCD czyscic czyli - wykorzystuje funkcje cls z biblioteki . ŁAdnie reaguje szybko i elegancko . Napis który mam na wyswietlaczu sie kasuje ale ....no pozniej juz sie nei pojawia :/ No przeciez przerwanie ma wrocic do miejsca programu na ktorym main sie zatrzymal . DOmyslam się , że używając Komend LCD powoduje , że niestety cała inicjalizacja , wyswietlanei napisu ktory wczesniej ustalilem , i wszystko inne szlak trafia....ale dlaczego ? Procek uzywajac komendy cls , niszczy wszystko co wczesniej main zrobil ? Zamieszcze kod , choc jest taki tylko "roboczy " . Będe wdzięczny za jakieś sugestie :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

Autor:  mirekk36 [ 15 wrz 2019, o 22:43 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Cytuj:
a tu juz samo przerwanie :

Panie kochany to już jest istna masakra niestety ... wiem że zaczynasz dlatego od razu ci mówię - bo pewnie jeszcze nawet w Bluebooku tego nie doczytałeś, więc zapamiętaj

1. Nigdy nie używaj obsługi LCD w przerwaniach - bo to bardzo powolne funkcje i blokujesz działanie programu.

2. NAJWOLNIEJSZĄ funkcją ze wszystkich do LCD jest właśnie CLS

3. czy wiesz że można a nawet trzeba tak pisać programy, żeby w ogóle nigdy nie używać funkcji CLS ?

ale na początek - po prostu zapomnij o używaniu tego w przerwaniach

Autor:  feniks_ [ 16 wrz 2019, o 08:36 ]
Tytuł:  Re: LCD hd44780 - makra klasyka problemu :)

Dzięki serdeczne - rozumiem :) Oczywiście coś tam było o tym , ale wypadło z głowy :x No nic dziękuje za pomoc :)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/