в этом скетче, в зависимости от символа, принятого из порта, необходимо переписать содержимое одного из массивов: array1 или array2, находящихся в PROGMEM, в массив array0.
const unsigned int PROGMEM array1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const unsigned int PROGMEM array2[10] = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
unsigned int array0[10];
String stroka;
int i;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0)
{
char priem = Serial.read();
if (priem == '\n') // конец пакета
{
if (stroka == "a")
{
for (i=0;i<=9;i++) array0[i]=pgm_read_word(&array1[i]);
}
if (stroka == "b")
{
for (i=0;i<=9;i++) array0[i]=pgm_read_word(&array2[i]);
}
stroka = "";
}
else
{
if ((byte) priem != 13) stroka += priem;
}
}
}
Вопрос. Каким образом организовать процедуру, чтобы уростить строки 21 и 25.
Если вам нужно во время работы что то изменить в PROGMEM, значит вы что то делаете не так.
Для сохранения энергонезависимых данных предназначен EEPROM.