Witam,
Robię coś w rodzaju konsoli na lcd nokii (6 linii po 14 znaków) i nie wiem jak najsprawniej dodać jedną linię tekstu na dole ekranu, jednocześnie przenosząc wyżej poprzednie linie i tracąc pierwszą.
stworzyłem zmienną przechowującą zawartość ekranu:
unsigned char LCD_Content [6][15]; // tablica 2 wymiarowa z całą zawartością ekranu 6 wierszy x 14 znaków + null na końcu
oraz funkcję, która ma dodawać dolną linię.
Problem niby banalny, ale czy da się to zrobić bez kopiowania znak po znaku w pętli, tylko podmieniać miejscami całe tablice? Z tego co pamiętam wskaźnik do tablicy to tak naprawdę wskaźnik na jej pierwszy element, a ja chciałbym podmienić całą tablicę w miejsce innej. Dokładnie zamienić miejscami tablice jednowymiarowe wewnątrz zmiennej dwuwymiarowej, a następnie na miejscu 6 wstawić tablicę jednowymiarową.
poniższy kod jest błędny, ale obrazuje o co mi chodzi.
da się wskaźnikami, czy może jakieś memcopy?
Dodano po 15 [minuty]:
znalazłem coś takiego:
http://www.nongnu.org/avr-libc/user-manual/gr...tring.html#ga5f60008005ea7557430149926cf583d7
działa, chyba że ktoś ma lepszy pomysł
Robię coś w rodzaju konsoli na lcd nokii (6 linii po 14 znaków) i nie wiem jak najsprawniej dodać jedną linię tekstu na dole ekranu, jednocześnie przenosząc wyżej poprzednie linie i tracąc pierwszą.
stworzyłem zmienną przechowującą zawartość ekranu:
unsigned char LCD_Content [6][15]; // tablica 2 wymiarowa z całą zawartością ekranu 6 wierszy x 14 znaków + null na końcu
oraz funkcję, która ma dodawać dolną linię.
Problem niby banalny, ale czy da się to zrobić bez kopiowania znak po znaku w pętli, tylko podmieniać miejscami całe tablice? Z tego co pamiętam wskaźnik do tablicy to tak naprawdę wskaźnik na jej pierwszy element, a ja chciałbym podmienić całą tablicę w miejsce innej. Dokładnie zamienić miejscami tablice jednowymiarowe wewnątrz zmiennej dwuwymiarowej, a następnie na miejscu 6 wstawić tablicę jednowymiarową.
poniższy kod jest błędny, ale obrazuje o co mi chodzi.
Kod: C / C++
da się wskaźnikami, czy może jakieś memcopy?
Dodano po 15 [minuty]:
znalazłem coś takiego:
http://www.nongnu.org/avr-libc/user-manual/gr...tring.html#ga5f60008005ea7557430149926cf583d7
działa, chyba że ktoś ma lepszy pomysł
Kod: C / C++