Witam!
Mam pewien problem. Mianowicie, zadeklarowałem sobie strukturę w pamięci programu oraz zainicjowałem ją:
oraz procedurę piszącą na moim wyświetlaczu:
Problem w tym że nie potrafię się dostać do tej struktury... próbowałem na różne sposoby, korzystając z operatora "&" oraz makra pgm_read_byte i nic.
Odwołanie się w sposób jak poniżej:
skutkuje błędem: "main.c:42: error: request for member `napis' in something not a structure or union", natomiast odwołanie takie:
przynosi pożądany efekt tylko nie wiem dlaczego.
Problem w tym ze docelowo chcę zadeklarować takie coś:
i jak do tego się odwołać to już nie mam pojęcia...
Za okazaną- dla początkującego w GCC- pomoc serdeczne dzięki...
gwozdex.
PS. używam WinAVR 20060125
Mam pewien problem. Mianowicie, zadeklarowałem sobie strukturę w pamięci programu oraz zainicjowałem ją:
typedef struct stringg
{
uint8_t screen_cnt; // ilość ekranów
char napis[]; // tekst do wyświetlania
}string_struct PROGMEM;
string_struct strr = {1, "avc"};oraz procedurę piszącą na moim wyświetlaczu:
void print_str(prog_char* str)
{
int n=0;
char znak;
while (0 != (znak= pgm_read_byte(str++)) )
{
chose_disp(n/4);
chose_digit(n%4);
send_data(znak);
n++;
}
}Problem w tym że nie potrafię się dostać do tej struktury... próbowałem na różne sposoby, korzystając z operatora "&" oraz makra pgm_read_byte i nic.
Odwołanie się w sposób jak poniżej:
print_str(strr.napis);skutkuje błędem: "main.c:42: error: request for member `napis' in something not a structure or union", natomiast odwołanie takie:
print_str(strr[0].napis);Problem w tym ze docelowo chcę zadeklarować takie coś:
string_struct strr[5] =
{
{1,"gitara1"},
{1,"gitara2"},
{1,"gitara3"},
{1,"gitara4"},
{1,"gitara5"},
};Za okazaną- dla początkującego w GCC- pomoc serdeczne dzięki...
gwozdex.
PS. używam WinAVR 20060125
