invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}
Пробую скомпилировать код для Ардуино Нано. Выдаёт ошибку conversion from const uint8_t* to uint8_t*. Понимаю в чем проблема, но не знаю как пофиксить.
myOLED.drawBitmap(0, 0, VUMeter, 128, 64); // draws background
VUMeter описывается тут.
const uint8_t VUMeter[] PROGMEM = {...}
Описание функции drawBitmap из библиотеки OLED:
drawBitmap(int x, int y, uint8_t* bitmap, int sx, int sy);
Буду благодарна, если поможете разобраться как пофиксить ошибку.
Ответы (1 шт):
Автор решения: Vanyamba Electronics
→ Ссылка
В микроконтроллере AVR8 есть два типа памяти: оперативная (RAM) и память программ (PROGMEM). Следовательно указатель при вызове функции должен указывать на адрес в RAM.
(uint8_t) vucpy[128*64];
for (int n = 0; n < 128*64; ++n)
vucpy[n] = (uint8_t) pgm_read_byte(&(VUMeter[n]));
myOLED.drawBitmap(0, 0, vucpy, 128, 64);