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



Teraz jest 10 lis 2024, o 02:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 7 lis 2024, o 07:44 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 367
Pomógł: 0

Witajcie.
Mam problem z wyświetlaczem TFT 3.5 ", który nie chce mi zadziałać. Uczę się jego obsługi. Do tej pory używałem 2.8 ". Inicjował się bez problemu i rysowałem na nim różne figury, czy trenowałem
teksty. Ale od początku. Procesor, to Atmega 32. Kwarc 18,432,000. Zestaw atb wersja pierwsza. Hardware SPI na porcie B. Zawsze działały różne programiki, gotowce z netu, poje programiki do prostych testów różnych funkcji. Posiadam taki wyświetlacz 2.8 "


Obrazek


Kupiłem go dawno i nie pamiętam, jaki tu jest sterownik, ale przeglądając różne na Alle.... stwierdziłem, że będzie to ILI9341.


Obrazek


Nowy 3.5 " wygląda tak


Obrazek


i jest na sterowniku ILI9488


Obrazek


Biblioteki, jakie używam, posiadają wewnątrz pliki sygnowane ili9341. Natomiast w necie doczytałem, że te sterowniki (ili9341 ili9488), komendy do nich są w zasadzie takie same i oba wyświetlacze powinny działać. Niestety u mnie nie.

Jedyne, co zmieniłem w konfig, to szerokość i wysokość w pikselach. Nie pomogło. Wydłużyłem czasy inicjalizacji, ale tez nic. Może mi ktoś pomóc, ewentualnie dać link do działającej biblioteki na sterowniku ili9488, jeśli w tym tkwi problem ? Z góry dziękuję za sugestie.


Obrazek

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2024, o 18:07 
Offline
Użytkownik
Avatar użytkownika

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

Wstaw program. Wystarczy inicjalizacja wyświetlacza.
Możesz też spróbować zrobić debuger na diodzie LED (Mirek opisał na blogu, jak) albo na UARTcie (wyrzucasz na UART informacje o kolejnych krokach programu).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2024, o 18:33 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 367
Pomógł: 0

Dzięki Marhef za chęć pomocy.

Jutro rano wrzucę program. Został w pracy, gdzie jak mam trochę luzu, to poświęcam na C. Tylko co mam wrzucić. Wszystko, czy tylko pliki
ILI9341.c i.h ? Tam jest sekwencja inicjalizacii, spi, itd. Reszta, to funkcje rysowania, pisania.... Na wyświetlaczu 2,8 wszystko śmiga.

Teoretycznie myślałem, że wypnę jeden i podepnę drugi załączę i ma działać. Tak niestety nie jest. Nawet bez zmiany rozmiaru wyświetlacza
ruszania czegokolwiek powinien się odpalić, tak sądziłem. Odnoście debugera na diodzie led, to oglądałem kiedyś, ale nie przyszło mi do głowy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2024, o 07:51 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 367
Pomógł: 0

Witam ponownie.

Załączam zdjęcia przy podłączonym jednym i drugim wyświetlaczu. Tylko przepinam bez jakichkolwiek zmian w kodzie. Jeszcze nie sprawdzałem z diodą. Chwilowy brak czasu :evil:

Dołączam kompletny program. Pozdrawiam.

2.8 cala ILI9341


Obrazek


3.5 cala ILI9488




Obrazek


Załączniki:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 08:16 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 367
Pomógł: 0

W programie, który zamieściłem, nie chce działać rysowanie piksela. O dziwo pozostałe funkcje rysują, gdzie też korzystają z funkcji
draw_pixel(): Poprawiłem tą funkcję i teraz jest ok.

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


Przejrzałem poradnik Mirka o debugerze na diodzie LED i próbowałem coś znaleźć, ale nie napotkałem błędu. Może źle szukałem. Przejrzałem
void ili9341_init(void) i wszędzie dioda się zapala. Rozumiem, ze inicjalizacja przebiega prawidłowo ? Korzystałem z tego poradnika:

https://www.youtube.com/watch?v=yVFf22JxuEs&t=731s

Jest kilka pobrań programu, ale jakoś nikt nie chcę się wypowiedzieć. Rozumiem,że to nie piekarnia...

Kopiąc w internecie napotkałem informacje, że dla sterownika ILI9488 jest inna ilość bitów, 24bit (RGB888), natomiast dla ILI9341 jest
16bit color (RGB565). Chodzi o kolor. Tutaj np. jest coś napisane:

https://github.com/azmathmoosa/ILI9488

Czy to jest właściwy kierunek i w tym tkwi błąd ?
Jeśli tak, to rozumiem, że trzeba wysyłać znacznie więcej danych do wyświetlacza, co wpłynie na prędkość wyświetlania ?
Czy wówczas dla procka AVR Atmega ten typ wyświetlacza jest błędnym wyborem i powinienem szukać na innym sterowniku (np. ILI9341) ?

Największy, jaki widzę w sprzedaży, to 3.2"

Czy może ktoś znający temat odpowiedzieć na pytania ?

Generalnie, gdzie w kodzie , jak powinienem dokonać zmian, a żeby chociaż przetestować, jak szybko taki wyświetlacz może działać z atmegą.

Mirek napędzał atmegę o ile pamiętam kwarcem 24MHz.

Sorry za tyle pytań w jednym poście, ale nie chcę rozciągać tematu i zajmować wam sporo czasu na jego drążenie. Robert.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 11:45 
Offline
Moderator
Avatar użytkownika

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

to wprawdzie nie jest powodem że ci nie działa, ale odbije ci się czkawką później:

if((x < 0) ||(x >=320) || (y < 0) || (y >=240)) return;

ten warunek nigdy nie będzie spełniony dla np x<0 albo x>320, analogicznie dla Y-ka. Sprawdź sobie tą funkcję bez tego warunku a później z warunkiem i zastanów się dlaczego nie będzie spełniony.

_________________
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: wczoraj, o 13:54 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 367
Pomógł: 0

Dziękuje Mirku za sugestię.
Sprawdzę i przemyślę zagadnienie. Przy okazji, skoro zajrzałeś do tematu, to czy nie mógłbyś się odnieść do mojego problemu odnośnie działania tft lcd ? Chociaż cokolwiek i czy ten wyświetlacz ma sens z AVR ?

Póki nie było uruchamiania, to nie wiedziałem, że są takie zawiłości w różnicy pomiędzy nimi. Teraz czytam, że co niektórzy nie polecają ILI9488
dla AFR-ów. Dla STM ok... Może popełniłem babola zakupując go.

Ja oczywiście nie planuję jakiś kosmicznych grafik, czy animacji. proste statyczne wyświetlanie jakich danych z czujników, adc itd.. Moze jakiś bar ito wszystko. Będę wdzięczny za chwilę poświęconego czasu. Jak nie warto, to odpuszczę temat i pozostanę przy tym, co działa.

Jednak na 3.5" zawsze lepiej widać :D :D :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 16:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 315
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

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

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

_________________
http://www.avrboss.pl



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