Цитата(Lyt @ Jan 15 2014, 10:43)

Можно поподробнее описать строку
Код
unsigned char string_to_LCD[]={ " HE\xA8" "PEP" "\xAE\x42" };
?
а можно стирать массив а потом заново его инициализировать с другими элементами?
или это нерационально?
Вы можете обозначить несколько константных массивов начальной инициализации и потом копировать их в массив в оперативной памяти.
Можно использовать strcopy или написать её аналог самостоятельно, ориентируясь на терминатор строки '\0' который будет автоматически добавлен в константную строку.
Код
const unsigned char init0[] = "init str 0";
const unsigned char init1[] = "SIZE:; NUM: ";
unsigned char string_to_lcd[33]; //+1 символ для терминатора строки
strcopy(char string_to_lcd, init0);
strcopy(char string_to_lcd, init1);
\ - позволяет подставить любое число или ascii-символ в данную позицию строки.
Запись типа \xA8 позволяет разместить на данной позиции число 0xa8. Можно записать \" - тогда на данной позиции будет размещён ascii-код символа '"'
Например unsigned char string_to_lcd[32] = "\"My LCD string\"";
Если напечатать эту строку на индикаторе то получите текст "My LCD string" заключённый в кавычки.
Чтобы быстро "стереть" строку запишите string_to_lcd[0] = '\0'; или эквивалентную запись string_to_lcd[0] = 0x0;
Кстати const unsigned char в зависимости от процессора будет располагаться в различных типах памяти.
Для AVR лучше использовать __flash unsigned char чтобы константные строки ложились во flash.
Если Вы оставите const unsigned char то строки будут располагаться в оперативке, что не есть рационально для этого процессора.
Для ARM const unsigned char будет расположено во flash.
Всё вышесказанное по поводу расположения строк относится к IAR.