Det är så att jag försöker modifiera lite Arduino-kod (firmware till Ultimaker) och har stött på lite problem. Jag har aldrig rört Arduino förut så jag är mer förvirrad än vanligt...
Problemet är att jag försöker plocka ut ett värde från en array och använder en variabel som index men värdet på index-variabeln verkar inte vara vad jag tror.
Arrayen jag vill hämta värden från:
Kod: Markera allt
static const uint16_t f_04b036ptDescriptors[95][3] PROGMEM =
{
{2, 7, 0}, //
{1, 7, 2}, // !
{3, 7, 3}, // "
osv osv
Funktionen:
Kod: Markera allt
void lcd_lib_draw_small_stringP(uint8_t x, uint8_t y, const char* pstr)
{
uint16_t offset;
uint8_t index;
for(char c = pgm_read_byte(pstr); c; c = pgm_read_byte(++pstr))
{
index = c - ' ';
offset = f_04b036ptDescriptors[index][2];
Om jag skriver ut värdet av c och index på displayen så visar de siffrorna jag förväntar mig (77 resp 45 i det här fallet). Så även om index verkar vara satt till 45 så går den inte att använda för att få ut värdet jag förväntar mig.
Någon som har en idé var jag ska börja nysta?