zubik napisał(a):
Pozwól że pokażę Ci to w sposób w jaki ja to robię:
deklaracja tablicy w pliku .h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
definicja w pliku .c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Odczyt z tablicy:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
...
No niestety ale to jest drastycznie niepoprawny sposób definiowania i zarządzania stringami w C w AVR ... i nie polecam takiego podejścia. Wystarczy sobie chociażby porównać ile niepotrzebnie tracimy pamięci FLASH na taki zapis ... i już wskazuję gdzie jest pułapka. Otóż kolega zubik zdefiniował każdy string o długości 33 bajty a tymczasem większość stringów w tej tablicy ma tylko kilka bajtów. Oczywiście rozumiem że to tylko przykład no ale w życiu też tak będzie ... toż zostanie utworzona tablica gdzie KAŻDY element będzie zawierał 33 bajty !!! masakra trochę co? Nawet jeśli zostanie tam umieszczony tylko string np: "Z=".
Krótko mówiąc przy takim podejściu szlag trafi aż 396 bajtów pamięci FLASH! co dla jakiegoś malucha attiny to wręcz zabójstwo ale i dla większych procków i większej ilości tak umieszczonych stringów to też zabójstwo.
polecam sprawdzić co się stanie gdy te same stringi umieścimy we FLASH tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
okaże się, że NAGLE z pamięci FLASH zniknie zajętych bajtów aż 288 !!!
czyli napisy z dodatkową tablicą wskaźników zajmą tylko 108 bajtów! dla tego przypadku ... teraz czuć różnicę ?
po prostu każdy napis definiujemy oddzielnie i ew tworzymy tablicę wskaźników w której przechowujemy właśnie wskaźniki do tych napisów, a później też można spokojnie sobie robić z tymi napisami co się żywnie podoba łącznie z wyświetlaniem na LCD, terminalu - gdziekolwiek - jak ?
Polecam jednak zaglądać częściej na mojego bloga bo akurat ten problem opisałem już bardzo dawno temu bo w 2013 roku
http://mirekk36.blogspot.com/2013/11/ta ... ogmem.htmli tam wszystko ładnie krok po kroku wyjaśniam
_________________
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 ]