Witam.
Chcę stałe tekstowe wypisywać bezpośrednio z pamięci programu aby nie zajmowały miejsca w Ramie
(dotychczas używałem char *pwsk="string", na komp. PC ten sposób był ok).
Mam problem z wykorzystaniem makra PSTR:
powoduje, że na wyświetlaczy mam "krzaki"( -tak jakby wskaźnik nie był ustawiony na stringa tylko 'gdzieś'.. ) i zwiększone zostaje miejsce w pamięcie ram - przynajmniej tak pokazuje kompilator
próbowałez z :
wyświetlany tekst jest ok ale zajętość pamięci ram jest taka sama jakby tekst był wpisany do Ramu.
Nie wiem gdzie leży błąd, wydaje mi się, że działanie obu zapisów powinno być jednakowe: string zapisany we flashu i zwrócony wskaźnik na jego początek. Być może to funkcję wyswietlającą należy "przyuczyć" do czytana z pamięci programu
Chcę stałe tekstowe wypisywać bezpośrednio z pamięci programu aby nie zajmowały miejsca w Ramie
(dotychczas używałem char *pwsk="string", na komp. PC ten sposób był ok).
Mam problem z wykorzystaniem makra PSTR:
char * pcPointer1 = PSTR("-Sterownik temp.");
LCDString(1, 0, pcPointer1, Negativ);powoduje, że na wyświetlaczy mam "krzaki"( -tak jakby wskaźnik nie był ustawiony na stringa tylko 'gdzieś'.. ) i zwiększone zostaje miejsce w pamięcie ram - przynajmniej tak pokazuje kompilator
próbowałez z :
char * pcPointer1 __attribute__ ((progmem)) = "-Sterownik temp.";
LCDString(1, 0, pcPointer1, Negativ);wyświetlany tekst jest ok ale zajętość pamięci ram jest taka sama jakby tekst był wpisany do Ramu.
Nie wiem gdzie leży błąd, wydaje mi się, że działanie obu zapisów powinno być jednakowe: string zapisany we flashu i zwrócony wskaźnik na jego początek. Być może to funkcję wyswietlającą należy "przyuczyć" do czytana z pamięci programu
void LCDString(uint8_t ui8Y, uint8_t ui8X, char cStr[], enum Polar eNormalNegativ);