Witam
Męczę się właśnie nad napisaniem obsługi ładowania bitmap na wyświetlacz graficzny 240*128 T6963.
Do obsługi używam znanych bibliotek kolegi Radosława Kwietnia (radzio.dxp.pl/t6963/).
Sama obsługa wyświetlania tekstu i rysowania po ekranie jest już przeze mnie opanowana. Tak samo ładnie wyświetlają się też bitmapy odpowiednio skonwertowane programikiem także pana Radka. Bitmapę testową mam załadowane do pamięci programu. Ale niestety muszę ładować te bitmapy z karty pamięci SD.
Obsługa kart także działa już. Używam Petit FatFs .Mogę spokojnie odczytać zawartość pliku i wyświetlić ją na LCD.
Ale nie mam pojęcia jak ugryźć ładowanie bezpośrednio z pliku na LCD bez użycia bufora. Chodzi mi o zmaksymalizowanie szybkości ładowania z karty i zmniejszenia zużycia RAM-u.
Tak czytam kartę SD:
W taki sposób ładuję includowany wcześniej plik z obrazkiem:
Podejrzewam że do ładowania bitmapy muszę w trakcie odczytu zaprzęgnąć ten fragment:
ale nie wiem od czego zacząć i jak to ugryźć. Nie ukrywam że wcześniej pisałem w Bascomie i ten projekcik z GLCD jest dla mnie dość trudnym wyzwaniem. Ale zanim założyłem ten temat to spędziłem kilka ostatnich dni nad opanowywaniem biblioteki pana Radka.
Samo odczytywanie plików docelowo ma wyglądać mniej więcej w taki sposób:
- podaję (nazwę obrazka do załadowania , koordynatę X i Y oraz rozmiar obrazka X i Y)
Później chciałbym dorobić możliwość wyboru czy wyświetlany obraz ma być w negatywie czy nie. Ale to już powinno być proste.
Chciałbym docelowo używać do konwersji bitmap programu ze strony pana Radka więc odczyt i ładowanie na lcd danych musi uwzględniać taki format danych jaki zapisuje ten program czyli np:
Tutaj widzimy że obrazek wyląduje w kodzie programu. Co prawda używam Atmega2560 ale obrazków będzie na tyle dużo że muszą być czytane bezbuforowo z karty SD ( ewentualnie jakiś mały podreczny bufor).
Proszę w miarę możliwości o jakieś sugestie w jaki sposób się za to zabrać.
Wydaje mi się że powinienem zacząć od tego. Przykład odczytu danych i wysłania strumienia danych dalej (znalazłem to w opisach Elm Chan):
Z tym że i tu wykorzystywany jest bufor...
Dla testu napisałem sobie fragment odpowiedzialny za pseudo ładowanie grafiki przy użyciu instrukcji SetPixel. Obrazek skonwertowałem BMP to ASCII do formatu (01010101) czyli zapalony piksel w obrazku to logiczna "1".
Tu fragment:
Nawet to działa ale makabrycznie wolno (około 15 sekund jeden obrazek).Mam małe przesunięcie na LCD obrazka ale to już szczegół.
Wstawiam w załączniku plik który ładuję na ekran.
Ale taki format danych nie może szybko działać.Wolałbym aby było to jednak ładowane w formie do jakiej konwertuje obrazki programik Radka.
Niestety takie ładowanie nie nadaje się do mojego urządzenia. W Bascomie schodziłem poniżej sekundy....
Dodaję także w załączniku grafikę którą sobie narysowałem. Jest w formacie 1 bitowym.
Męczę się właśnie nad napisaniem obsługi ładowania bitmap na wyświetlacz graficzny 240*128 T6963.
Do obsługi używam znanych bibliotek kolegi Radosława Kwietnia (radzio.dxp.pl/t6963/).
Sama obsługa wyświetlania tekstu i rysowania po ekranie jest już przeze mnie opanowana. Tak samo ładnie wyświetlają się też bitmapy odpowiednio skonwertowane programikiem także pana Radka. Bitmapę testową mam załadowane do pamięci programu. Ale niestety muszę ładować te bitmapy z karty pamięci SD.
Obsługa kart także działa już. Używam Petit FatFs .Mogę spokojnie odczytać zawartość pliku i wyświetlić ją na LCD.
Ale nie mam pojęcia jak ugryźć ładowanie bezpośrednio z pliku na LCD bez użycia bufora. Chodzi mi o zmaksymalizowanie szybkości ładowania z karty i zmniejszenia zużycia RAM-u.
Tak czytam kartę SD:
Kod: C / C++
W taki sposób ładuję includowany wcześniej plik z obrazkiem:
Kod: C / C++
Podejrzewam że do ładowania bitmapy muszę w trakcie odczytu zaprzęgnąć ten fragment:
Kod: C / C++
ale nie wiem od czego zacząć i jak to ugryźć. Nie ukrywam że wcześniej pisałem w Bascomie i ten projekcik z GLCD jest dla mnie dość trudnym wyzwaniem. Ale zanim założyłem ten temat to spędziłem kilka ostatnich dni nad opanowywaniem biblioteki pana Radka.
Samo odczytywanie plików docelowo ma wyglądać mniej więcej w taki sposób:
- podaję (nazwę obrazka do załadowania , koordynatę X i Y oraz rozmiar obrazka X i Y)
Później chciałbym dorobić możliwość wyboru czy wyświetlany obraz ma być w negatywie czy nie. Ale to już powinno być proste.
Chciałbym docelowo używać do konwersji bitmap programu ze strony pana Radka więc odczyt i ładowanie na lcd danych musi uwzględniać taki format danych jaki zapisuje ten program czyli np:
Kod: C / C++
Tutaj widzimy że obrazek wyląduje w kodzie programu. Co prawda używam Atmega2560 ale obrazków będzie na tyle dużo że muszą być czytane bezbuforowo z karty SD ( ewentualnie jakiś mały podreczny bufor).
Proszę w miarę możliwości o jakieś sugestie w jaki sposób się za to zabrać.
Wydaje mi się że powinienem zacząć od tego. Przykład odczytu danych i wysłania strumienia danych dalej (znalazłem to w opisach Elm Chan):
Kod: C / C++
Z tym że i tu wykorzystywany jest bufor...
Dla testu napisałem sobie fragment odpowiedzialny za pseudo ładowanie grafiki przy użyciu instrukcji SetPixel. Obrazek skonwertowałem BMP to ASCII do formatu (01010101) czyli zapalony piksel w obrazku to logiczna "1".
Tu fragment:
Kod: C / C++
Nawet to działa ale makabrycznie wolno (około 15 sekund jeden obrazek).Mam małe przesunięcie na LCD obrazka ale to już szczegół.
Wstawiam w załączniku plik który ładuję na ekran.
Ale taki format danych nie może szybko działać.Wolałbym aby było to jednak ładowane w formie do jakiej konwertuje obrazki programik Radka.
Niestety takie ładowanie nie nadaje się do mojego urządzenia. W Bascomie schodziłem poniżej sekundy....
Dodaję także w załączniku grafikę którą sobie narysowałem. Jest w formacie 1 bitowym.
