Dołączył(a): 27 maja 2013 Posty: 562 Lokalizacja: Bydgoszcz
Pomógł: 23
Chciałby zaprezentować wstępną bibliotekę po "SPI" do wyświetlacza 3,5" 480 x 320 TFT LCD opartego o sterownik HX8357D firmy Adafruit https://www.adafruit.com/product/2050 napisaną przeze mnie na podstawie oryginalnej biblioteki od firmy Adafruit dla Arduino oraz doświadczeń zdobytych podczas nauk Mirka dotyczących wyświetlaczy OLED oraz tzw. Green Booka.
Myślę że na początek film z jej pracy na wyświetlaczu, na żywo wygląda to zdecydowanie lepiej niestety kamera, którą posiadam nie oddaje "ładności" świecenia jego jednakże bardziej mam na celu pokazanie pracy i możliwości funkcji jakie posiada biblioteka.
A teraz kod Myślę że za specjalnie nie ma co go komentować osobno, albo raczej mi się tak wydaję bo starałem się napisać ją czytelnie i w miarę zrozumiale dodając stosowne komentarze. Nie będę może zupełnie całego programu testowego publikować na stronie ale dodam go całego spakowanego na końcu tematu jako załącznik do obejrzenia i ewentualnych własnych testów jak ktoś w/w wyświetlacz nabędzie.
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I jak? No cóż trochę się naklepałem, jeszcze są pliki z bitmapami i ustawieniami skórki dla dema higrometru ale to zostawiam do obejrzenia w załączniku. Ogólnie nie mam pojęcia czy tą bibliotekę jak również program demonstracyjny napisałem dobrze czy źle, to już pozostawiam do oceny w waszej gestii.
Napiszę że na pewno mi ta biblioteka działa i ja osobiście jestem z niej zadowolony, funkcjonalność jaką ja potrzebuje do jakiś swoich projektów mam wystarczającą, rzekłbym aż nad to. Biblioteka w załączniku jest skompilowana na procesor Atmega 32A pracująca z zegarem 18 432 000, z innymi mniejszymi kwarcami też chodzi ale nie zalecałbym niczego niżej niż 16Mhz - już mocno zwalnia. Testowałem ja na różnych procesorach np. A32A, A128 (po odchudzeniu nawet na A8 najmniejszy jaki próbowałem) jak i również na A644PA oraz A1284P i tu mam małe pytanie bo zagadką dla mnie jest to że o ile ze starszymi wymienionymi procesorami komunikacja SPI przy 5V działa idealnie bez zastrzeżeń to jak skompiluje tą bibliotekę na nowsze procesory serii 644 itd. to amen, złe działanie, defakto krzaki na ekranie, niestabilność, masakra. Jednakże jak przestawię tylko napięcie zasilania na 3,3V lub dam dodatkowy dzielnik napięcia to ręka odjoł biblioteka działa tak samo dobrze jak na A32 itp. o co tu chodzi, coś się zmieniło w nowszych procesorach, analizowałem notę jest tam coś o zasilaniu w przypadku używania SPI, coś powiązane z UART że trzeba dać 0 wrejestr PWR, ale domyślnie są 0 no nie jasne to dla mnie, może ktoś z bardziej doświadczonych kolegów wyjaśni o co chodzi, mówię przestawiam na 3,3V i jest ok, a ze starszymi procesorami obojętnie czy na 5V czy na 3,3V jest też ok.
Z innych uwag jakie mam albo mi nie wyszły to wyświetlanie zmiennej z pamięci flash, ona się wyświetla na ekranie ale oprócz niej jakieś krzaki, może ktoś obejrzeć funkcje i mi podpowiedzieć jaki mam błąd lub może ficzer trzeba zrobić by było ok Już nie aktualne bo poprawione - aktualizacja biblioteki w załączniku
W demie aż się pewnie prosiło o latający napis spoza ekranu na wyświetlacz, ot taka pętelka - no cóż mała masakra z prędkością wyświetlania jakby AVRkowi pary zabrakło jak cały napis wjedzie dlatego z prezentacji tego zrezygnowałem ale kto wie może coś źle robię....
Z innych rzeczy jak ktoś bliżej się przyjrzy temu wyświetlaczowi to stwierdzi że ma on dotykowy rezystancjny ekran oraz czytnik kart MicroSD, i to się zgadza wszystko jest. Jeszcze tego nie opanowałem z jednej strony sprzętowo bo chcę dotykowy ekran zrobić na opisanym przez Mirka układzie STMPE811 https://www.sklep.atnel.pl/pl/searchquery/STMPE811/1/phot/5?url=STMPE811 i tutaj walczę z przylutowaniem jego bo jest ciut za duży ale myślę że za jakiś czas go opanuje i dodam stosowną aktualizacje biblioteki o funkcjonalność dotyku ale opartą o kod Mirka z zielonej książki więc by go uruchomić będzie wymagane dogranie jej sobie. Czytnik kart SD udało mi się bez większych problemów odpalić w wyświetlaczu również za pomocą biblioteki PetiFS Mirka z zielonej książki jednakże poległem na razie na pisaniu funkcji wyświetlającej zdjęcia z karty, no cóż jest to szerszy problem który opisze w nowym wątku ze stosownymi pytaniami oraz niejasnościami jakie mam i jak to opanuję również dodam zaktualizowaną funkcjonalność. Wyświetlacz ma jeszcze tryb 8-bit ja jednakże raczej nie będę go oprogramowywać - chociaż może kiedyś dla zabawy to też kod zamieszczę.
I jeszcze napisze dla malkontentów, powiem wam że jestem przeszczęsliwy, wniebowzięty wręcz że po jakimś tam czasie, w sumie nie długim ja wiem roku-póltorej nauki języka C od 0 z Mirkiem, jego poradnikami oraz książkami opanowałem sobie sam bez niczyjej pomocy obsługę jakiegoś tam przypadkowego wyświetlacza LCD TFT, którego widzę pierwszy raz na oczy w jakiś tydzień wraz z programem demonstracyjnym. I to jest dla mnie najlepsze wręcz bezcenne, a o Mirku świadczy że robotę jaką robi robi ją bardzo dobrze
Załączniki:
Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.
Ostatnio edytowano 19 mar 2015, o 01:30 przez Intre, łącznie edytowano 2 razy
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
pętla while próbuje sprawdzać zawartość wskaźnika w pamięci RAM a nie FLASH - więc leci na wariata po całym RAMie aż natrafi na zero a wyświetla znaki czytane z Flash w kolejnej linii
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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