#programowanie #cpp #cplusplus #arduino #avr
Mam problem, tzn. wcześniej było tak
a teraz jest tak:
i kompilator wyrzuca mi błąd
Moglibyście mi pomóc? Jak temu zaradzić? Próbowałem konwersji na wskaźnik ale chyba coś robię źle, bo nie pomaga.
Mam problem, tzn. wcześniej było tak
unsigned char charMap[] = { ... }unsigned char *pFont;(jakiś kod)pFont = &charMap[((unsigned int)(*c) - 32) * 14];a teraz jest tak:
prog_uchar charMap[] PROGMEM = { ... }unsigned char *pFont;pFont = pgm_read_byte_near(&charMap + ((unsigned int)(*c) - 32) * 14);i kompilator wyrzuca mi błąd
invalid conversion from 'uint8_t' to 'unsigned char*Moglibyście mi pomóc? Jak temu zaradzić? Próbowałem konwersji na wskaźnik ale chyba coś robię źle, bo nie pomaga.
- Najlepsze
- Wszystkie komentarze







*pFont = //stuff
ale w tym przypadku to też kiepski pomysł, bo nie zainicjowałeś jego wartości, więc nie wskazuje na nic konkretnego (na coś wskazuje tylko nie wiadomo na co)
pFont++;
teraz pFont nie jest wskaźnikiem wiec zamiast tego używaj pgmreadbyte_near z wartością za każdym razem o 1 większą
http://wklej.org/id/1502416/
Proponuje popracować nad czytelnością kodu
http://wklej.org/hash/59ddd9d4d1c/
po ostatniej radzie się krzaczy niestety