Witam wszystkich czytelników
Ostatnio zacząłem zabawę z mikrokontrolerem ATmega64 i modułem wyświetlacza EA DIP128-6e. Wyświetlacz ten posiada organizację pamięci podzieloną na dwie części (dwa sterowniki KS0108). Napisałem do niego funkcję inicjującą i funkcję która pozwala na zapis danych do wyświetlacza (statycznie). I teraz pojawia się problem bo chciałem zrobić bufor w którym najpierw będę wykonywał wszystkie opcje rysowania a dopiero później całość zostanie wysłana na wyświetlacz. Funkcja zapisu do wyświetlacza zadeklarowana jest następująco:
void WriteLcd (unsigned char reg, uint8_t data, char ctrl); reg – wybieramy czy zapisujemy do rejestru czy do pamięci ; data – dane; ctrl – wybieramy kontroler(połowę wyświetlacza) do którego zapisujemy dane;
Dodatkowo zdefiniowane:
#define LCD_WIDTH 128
#define LCD_HEIGHT 64
Sam bufor będzie wyglądał tak:
uint8_t buf[(LCD_HEIGHT/8)] [LCD_WIDTH];
Wartość LCD_HEIGHT dzielona jest na 8 ponieważ posiada on organizację 8 linii - każda o wysokości 8 pix.
I teraz zaczynają się schody... Nie mam pomysłu jak odwołać się do pojedynczych pikseli w buforze. Jestem początkujący w tych sprawach i na chwilę obecną to zagadnienie mnie przerosło... Ma ktoś pomysł jak się do tego zabrać? Dodam że chcę zrealizować rysowanie kwadratu i linii prostej w buforze by móc potem wysłać całość do pamięci wyświetlacza.
Proszę o pomoc bo ślęczę już nad tym któryś dzień i dalej nic... :/
Ostatnio zacząłem zabawę z mikrokontrolerem ATmega64 i modułem wyświetlacza EA DIP128-6e. Wyświetlacz ten posiada organizację pamięci podzieloną na dwie części (dwa sterowniki KS0108). Napisałem do niego funkcję inicjującą i funkcję która pozwala na zapis danych do wyświetlacza (statycznie). I teraz pojawia się problem bo chciałem zrobić bufor w którym najpierw będę wykonywał wszystkie opcje rysowania a dopiero później całość zostanie wysłana na wyświetlacz. Funkcja zapisu do wyświetlacza zadeklarowana jest następująco:
void WriteLcd (unsigned char reg, uint8_t data, char ctrl); reg – wybieramy czy zapisujemy do rejestru czy do pamięci ; data – dane; ctrl – wybieramy kontroler(połowę wyświetlacza) do którego zapisujemy dane;
Dodatkowo zdefiniowane:
#define LCD_WIDTH 128
#define LCD_HEIGHT 64
Sam bufor będzie wyglądał tak:
uint8_t buf[(LCD_HEIGHT/8)] [LCD_WIDTH];
Wartość LCD_HEIGHT dzielona jest na 8 ponieważ posiada on organizację 8 linii - każda o wysokości 8 pix.
I teraz zaczynają się schody... Nie mam pomysłu jak odwołać się do pojedynczych pikseli w buforze. Jestem początkujący w tych sprawach i na chwilę obecną to zagadnienie mnie przerosło... Ma ktoś pomysł jak się do tego zabrać? Dodam że chcę zrealizować rysowanie kwadratu i linii prostej w buforze by móc potem wysłać całość do pamięci wyświetlacza.
Proszę o pomoc bo ślęczę już nad tym któryś dzień i dalej nic... :/
