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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 3 kwi 2025, o 18:35


    Strefa czasowa: UTC + 1





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

    Dołączył(a): 18 cze 2015
    Posty: 368
    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: 1168
    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: 368
    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: 368
    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: 9 lis 2024, o 08:16 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 368
    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: 9 lis 2024, o 11:45 
    Offline
    Moderator
    Avatar użytkownika

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

    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: 9 lis 2024, o 13:54 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 368
    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: 9 lis 2024, o 16:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 323
    Lokalizacja: Rybnik
    Pomógł: 23

    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  
    PostNapisane: 10 lis 2024, o 10:43 
    Offline
    Użytkownik

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

    No tak. Ale babol :oops:

    Przyznam, że po prostu zrobiłem kopiuj-wklej z jakiegoś foldera GitHub, czy Adafruit na szybko i nie przyjrzałem się dokładnie. A niestety okulary przekłamują niekiedy .....
    Przecież uint zaczyna się od zera... Dzięki również mario2015 za pomoc ;)



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

    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