Мой вопрос касается темы, как легко получить доступ к множеству переменных с помощью arduino. Я хотел бы знать, есть ли возможность динамически менять имена переменных в цикле. Мой английский не самый лучший, поэтому позвольте мне объяснить код, с которым я имею дело в настоящий момент.Название динамической переменной Название, Concatenate
У меня есть небольшой термопринтер. Способ печати происходит от Adafruit термопечати-библиотеки
void Adafruit_Thermal::printBitmap(int w, int h, const uint8_t *bitmap, bool fromProgMem) {
...
}
И я создал растровый шрифт, который выглядит следующим образом:
static const uint8_t PROGMEM Char_32[] {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; // Char 032 ()
static const uint8_t PROGMEM Char_33[] {
0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00
}; // Char 033 (!)
... for each caracter
Я хотел бы напечатать письмо для письма в этом для петли:
for(j = 0; j <= messageLength - 1; j++){ // Go through each character in the message.
int character = message[j]; // reads and stores the ASCII value of the current Character
printer.printBitmap(letter_width, letter_height, Char_XX); // i like to print the specific character
}
Normaly Я хотел бы взять 2d массив и напечатает, как это:
static const uint8_t PROGMEM letter_data[][8] =
{
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Char 032 ()
{0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00}, // Char 033 (!)
{0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00} // Char 034 (")
}
for(j = 0; j <= messageLength - 1; j++){ //Go through each character in the message.
int Character = message[j] - 32; // first visible ASCIIcharacter '!' is number 33. reads and stores the ASCII value of the current Character we are dealing with and -32 so the char correspnds to our array.
printer.printBitmap(letter_width, letter_height, letter_data[Character]);
}
Но мои письма будут намного больше, чем 8x8 пикселей, и мой массив станет большим. Так есть ли возможность обойти это?
Что вы имеете в виду, слишком велико? У вас заканчивается память? – user3853544
Вам нужно 3 вложенных цикла: строка битмапа/символов в сообщении/столбце растрового изображения. – stark
Основываясь на вашем коде, это звучит так: * «изменение имен переменных» * является неправильным описанием вашей проблемы, и ваша проблема больше связана с попыткой управления использованием памяти, особенно в отношении использования стека. – Xirema