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

Driver ILI9341 i problem z przeportowaniem biblioteki
https://forum.atnel.pl/topic24434.html
Strona 1 z 1

Autor:  mario2015 [ 16 mar 2023, o 21:26 ]
Tytuł:  Driver ILI9341 i problem z przeportowaniem biblioteki

Witam wszystkich.
Czy ktoś na tym forum mógłby mi pomóc w przeportowaniu bibliotek ILI9341 z C++ na czysty C?
chodzi o to, że gdzieś w szufladzie wygrzebałem fajny wyświetlacz. Chyba nawet dotykowy, bo ma dodatkową taśmę podłączoną do wyświetlacza(4 piny tzn. 4 paski).
Wiem już, że to na pewno ILI9341, bo ktoś kiedyś wspomniał albo tu na forum albo gdzieś indziej, że jak chcesz sprawdzić wyświetlacz czy działa a jest to schield pasujący do Arduino, to po prostu go sprawdź, czy działa.
Też tak zrobiłem. Po okazyjnej cenie udało mi się kupić Arduino Uno. Poszukałem na ich forach sterownika i znalazłem jakieś demo. Podłączyłem( a raczej włożyłem) wyświetlacz do płytki i o dziwo działa.
Teraz już kilka dni szukam i szukam jakiejś biblioteki pod C dla ATmegi32 ale niestety, działającej nie znalazłem.
Niestety nie znam języka C++ a już w szczególności "klas". Mój angielski jest na poziomie 0 czyli pdf-y na nic, nawet po przetłumaczeniu przez różne strony internetowe( tłumaczenie typu Kali kocha, Kali utnie).
Może ma ktoś jakąś działającą bibliotekę. Mi wystarczą 2 rzeczy, czyli inicjalizacja sterownika i funkcja SETPIXEL.
Z ręsztą chyba sobie poradzę .
W załączniku podaję bibliotekę, która mi się podoba i chciałbym ją przerobić.
Może znajdą się dobrzy ludzie i mi pomogą.
Acha, wiem, że Mirek pokazywał na YT jak przerobić biblioteki z C++ na C ale to był sterownik SSD1306 i na tej podstawie przerobiłem sterownik do SH1106 ale to są "proste" sterowniki.
Niestety z tym nie daję rady.
Tak jak pisałem wyżej, dołączam bibliotekę C++ i foto wyświetlacza.
Dziękuję z góry za wszystkie porady.
Obrazek

Autor:  jarekt [ 16 mar 2023, o 22:07 ]
Tytuł:  Re: Driver ILI9341 i problem z przeportowaniem biblioteki

Może to:
https://github.com/Matiasus/ILI9341

Autor:  ord [ 17 mar 2023, o 08:23 ]
Tytuł:  Re: Driver ILI9341 i problem z przeportowaniem biblioteki

Szkoda czasu.
Proponuję skorzystać z tego co już jest. Dwie opcje: napisanie programu w C++ albo dodanie warstwy pośredniczącej między kodem C a C++.
Oba te języki są na tyle podobne że, w moim przekonaniu, można napisać program będący w faktycznie składniowo j. C i skompilować go jako C++. A więc piszesz "normalnie" w j. C a jedynie w miejscu użycia biblioteki C++ (głównie wywołania metody) piszesz kod C++. Potrzeba do tego minimalnej wiedzy tj. jak czytać deklarację klasy, jak powołać instancję klasy i jak wywołać metodę. Poświęcisz na to kilka dni, przyda się na przyszłość. Na przepisanie biblioteki strawisz znacznie więcej czasu a efekt i tak z pewnością będzie "taki sobie".
Druga opcja polega w skrócie na napisaniu funkcji C w których zamyka się użycie Cpp. Też potrzeba minimalnej wiedzy ale po stworzeniu tych funkcji dalej piszesz program nie zawracając sobie głowy Cpepem. Przykładowe kody: https://stackoverflow.com/questions/274 ... ion-from-c https://stackoverflow.com/questions/728 ... l-c-from-c https://translate.google.com/?sl=auto&tl=pl&op=websites

Autor:  wat1970 [ 17 mar 2023, o 21:54 ]
Tytuł:  Re: Driver ILI9341 i problem z przeportowaniem biblioteki

Może tutaj znajdziesz coś przydatnego np. funkcję inicjalizującą :
https://strefapic.blogspot.com/2019/07/atsaml10-biblioteka-dla-kolorowego.html

Autor:  mario2015 [ 23 mar 2023, o 14:18 ]
Tytuł:  Re: Driver ILI9341 i problem z przeportowaniem biblioteki

Koledzy, dziękuję wam za wszystkie porady. Pomogły mi one "uruchomić ten nieszczęsny, zalegający w szufladzie wyświetlacz" i strzelić sobie w łeb.
Dlaczego strzelić w łeb? Dlatego, że jak jestem stary tak i głupi. Miałem się browara napić a nie wam zawracać głowę. Takich rzeczy nie robi się na trzeźwo.
Otóż wszystkie biblioteki jakie miałem ściągnięte, działają. Tylko po prostu trza było odświeżyć umysł i się napić soku chmielowego aby wszystko zaczęło działać.
Dlaczego tak piszę? Piszę tak, bo... Już wyjaśniam.
Podłączyłem do procka i wyświetlacza 5 linii sterujących + 8 linii danych. Wgrałem bibliotekę i jakiś tam swój przykład i nie działa wyświetlacz.
Nie ma nawet inicjalizacji. Więc o co chodzi? Nawet inicjalizacji nie ma. A kto podłączy zasilanie do wyświetlacza? No wy panowie za mnie tego nie zrobicie.
Ot taki głupi błąd. Ale to już chyba początek demencji starczej, tak że panowie wybaczcie.
A więc wyświetlacz działa. Funkcje typu narysuj pixel, linię trójkąt itd, itp. działają.
Wyświetl string itp. działają.
Wyświetl BitMaPę jako obraz w jednym kolorze - ta funkcja też działa.
A zatem wasze podpowiedzi dały mi na tyle do myślenia, że w końcu to działa.
Dziękuję wam za to.
Mam teraz tylko takie pytanie.
Jakiego programu używać do przerobienia grafik kolorowych, żeby się dały wyświetlić na takim wyświetlaczu( nie w formie monochromatycznej ) i
Jak powinna wyglądać taka funkcja (bez użycia karty SD, np. obrazek kolorowy o rozmiarach 32*32px).
Teraz odpowiedź do kolegi o nicku ord:
Sprawdziłem te linki, które podałeś. Bardzo ciekawe tematy, tylko po 3-krotnym przeczytaniu tych artykułów, nadal nie rozumiem jak przerobić coś z C++ na C, pomijając klasy.
Albo jak się pozbyć np. tego:
Jest jakaś klasa, która w sobie ma np: 3 funkcje o tej samej nazwie ale każda funkcja ma różne parametry. To jak to przerobić na C albo jak tego się pozbyć?
Tak, że dziękuję wam wszystkim. Pomogły mi wasze odpowiedzi ale bez soku się nie obyło.
Najważniejsze, że wyświetlacz się "uruchomił".
Pozdrawiam wszystkich.

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