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



Teraz jest 10 sie 2022, o 02:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 20 lut 2022, o 18:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 226
Pomógł: 12

Cześć wszystkim.
Mam taki oto problem:
Otóż odgrzebałem gdzieś w szufladzie jakiś wyświetlacz LCD TFT 320x240 ze sterownikiem SPDF5408 i szkoda mi go wyrzucać do śmieci.
Chciałbym go wykorzystać w jakimś projekcie na M32. Niestety ale już od trzech dni siedzę w necie u wujka google i... i nic, brak sterowników napisanych w C.
Wszystkie dostępne sterowniki to C++. No dobra, to może taką bibliotekę wystarczy przeportować.
No właśnie i tu zaczynają się problemy.
Niektóre rzeczy jestem w stanie ogarnąć ale tylko niektóre.
Pierwszy problem jest taki, że nie wiem co to za zapis w C++ i do czego służy:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak to przerobić na C?
Chyba, że ktoś posiada gotową bibliotekę do tego sterownika i chciałby się na tym forum z nami podzielić?
Poniżej zdjęcie tego chińskiego "cuda".

Obrazek

Będę bardzo wdzięczny za pomoc.

_________________
http://www.avrboss.pl



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

Dołączył(a): 08 wrz 2015
Posty: 551
Lokalizacja: Zamość
Pomógł: 17

Spójrz

https://github.com/ya-mouse/mcp-lcd
O ile to wyświetlacz ili9320



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2022, o 13:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 226
Pomógł: 12

Niestety, tak jak pisałem w pierwszym poście, sterownik to prawdopodobnie SPDF5408 i nie obsługuje magistrali SPI.

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2022, o 14:08 
Offline
Moderator
Avatar użytkownika

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

mario2015 napisał(a):
Pierwszy problem jest taki, że nie wiem co to za zapis w C++ i do czego służy:

Przecież to jakaś zwykła inicjalizacja gdzie przekazywane są pewnie numery pinów tych andruinowych dla sygnałów sterujących i rozdzielczość wyświetlacza, przecież w C i tak po swojemu musisz to zrobić - całkiem po swojemu.

_________________
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: 23 lut 2022, o 10:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1072
Lokalizacja: Kraków
Pomógł: 89

A to nie jest przypadkiem konstruktor?
Wrzuć tu całą bibliotekę, jak ogarnę dziurę w dachu to postaram się pomóc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2022, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 226
Pomógł: 12

Marhef
Cytuj:
Wrzuć tu całą bibliotekę, jak ogarnę dziurę w dachu to postaram się pomóc

proszę oto cała biblioteka.
Nie wiem jak to przerobić na M32 w czystym C.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2022, o 15:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1072
Lokalizacja: Kraków
Pomógł: 89

Zerknąłem na bibliotekę.
Tak na szybko:
1) biblioteka obsługuje kilka sterowników: ILI932x (obstawiam, że x oznacza kilka sterowników), HX8347G, ILI9341, HX8357, HX8357B, HX8357D.
2) w pliku registers.h masz rozpisane adresy rejestrów dla poszczególnych sterowników
3) w pliku pin_magic.h masz przypisanie pinów do wyświetlacza i funkcje wysyłania/odbierania danych. I delay na instrukcjach ASM.
UWAGA! Z tego, co widzę, wszystko jest pisane jako makra preprocesora! Żeby wymusić wstawienie ich inline. Nie wiem, czy to dobre rozwiązanie, no ale biblioteka jest pod arduino, więc...
4) w pliku Adafruit_TFTLCD.h masz deklarację klasy Adafruit_TFTLCD. Nie pamiętam z c++, co znaczy taki zapis:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
, może ktoś podpowie :) może to dziedziczenie?

Klasa w c++ to... taka rozbudowana struktura, gdzie oprócz zmiennych są też funkcje działające na tych zmiennych. I zmienne i funkcje mogą być publiczne (public), prywatne (private) albo chronione (?)(protected). Publiczne są dostępne z poza klasy, prywatne nie, a te trzecie to sam nie wiem :)
Klasa zawiera funkcję, która nazywa się tak jak klasa i jest to konstruktor. Przy tworzeniu zmiennej typu klasa, automatycznie wywoływany jest konstruktor. Na przykład po to, żeby uzupełnić pola klasy konkretnymi wartościami.
W c++ istnieje coś takiego jak przeciążenie funkcji. Oznacza to, że może istnieć kilka funkcji o takiej samej nazwie, a o innych argumentach. I to też tu widać.
W pliku .cpp masz takie dziwne konstrukcje z dwoma dwukropkami. To oznacza, że jest to funkcja z klasy.

Na chwilę obecną nie jestem w stanie przepisać Ci tych funkcji, nie mam na to czasu. Spróbuj powoli sam, pytaj, jak będziesz miał jakiś problem



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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