Witam,
Mam funkcję, która odczytuje tablicę zadeklarowaną jako:
i zapisuje ją do wyświetlacza.
w sumie nie ważne co konkretnie robi, ważne, że ma czytać tablicę z pamięci programu.
Pierwszym parametrem wejściowym do funkcji jest wskaźnik do tablicy i tu pojawia się problem, bo tablica jest w pamięci programu i przypuszczam, że ten wskaźnik trzeba jakoś stworzyć, ale jeszcze nie wiem jak.
Wywołanie funkcji w taki sposób:
powoduje przy kompilacji:
Czy ktoś mógłby podpowiedzieć, jak poprawnie tą funkcję wywołać?
Kombinowałem, żeby udawać, że tablica jest tekstem i użyć PSTR(), ale to kłopotliwe.
Mam funkcję, która odczytuje tablicę zadeklarowaną jako:
const PROGMEM unsigned char ikonka[32] = {0xFF, 0x03, 0x05, 0x09, 0xF1, 0x11, 0x11, 0x91, 0x91, 0x11, 0x11, 0xF1, 0x09, 0x05, 0x03, 0xFF, 0xFF, 0xC0, 0xA0, 0x90, 0x8F, 0x88, 0x88, 0x89, 0x89, 0x88, 0x88, 0x8F, 0x90, 0xA0, 0xC0, 0xFF};
i zapisuje ją do wyświetlacza.
void GLCD_Bitmap(unsigned char * bitmap, unsigned char x, unsigned char y, unsigned char width, unsigned char height)
{
unsigned char i, j;
for(j = 0; j < height; j++)
{
GLCD_GraphicGoTo(x, y + j);
for(i = 0; i < width/GLCD_FONT_WIDTH; i++)
{
GLCD_WriteDisplayData(pgm_read_byte(bitmap + i + (GLCD_GRAPHIC_AREA * j)));
}
}
Pierwszym parametrem wejściowym do funkcji jest wskaźnik do tablicy i tu pojawia się problem, bo tablica jest w pamięci programu i przypuszczam, że ten wskaźnik trzeba jakoś stworzyć, ale jeszcze nie wiem jak.
Wywołanie funkcji w taki sposób:
GLCD_Bitmap(ikonka, 10, 10, 32, 32);
powoduje przy kompilacji:
main.c:20: warning: passing argument 1 of 'GLCD_Bitmap' discards qualifiers from pointer target type
Czy ktoś mógłby podpowiedzieć, jak poprawnie tą funkcję wywołać?
Kombinowałem, żeby udawać, że tablica jest tekstem i użyć PSTR(), ale to kłopotliwe.