Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Инициализация переменных в структуре
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Oleg_IT
В примере работы с графическим ЖКИ фонты определяются так
/* Таблица фонта 8x8 */
const uint8_t font_08x08_table[] = {
………………………………………
};
/* Массив фонтов */
const struct FONT_DEF fonts[FONT_COUNT] =
{
{8, 8, font_08x08_table, 0x00, 0xFF, 0x2E},
……………………………………….
};

В IAR это не компилируется,
Error[Pe144]: a value of type "unsigned char const *" cannot be used to initialize an entity of type "unsigned char *"……

Это компилятор выдаёт на инициализацию массива fonts[FONT_COUNT] переменной font_08x08_table.
Как правильно записать это в IAR-е? Нужно иметь шрифты (минимум два) во флеш памяти и передавать их в процедуру.
andrvisht
Цитата(Oleg_IT @ Nov 22 2006, 14:40) *
...
В IAR это не компилируется,
Error[Pe144]: a value of type "unsigned char const *" cannot be used to initialize an entity of type "unsigned char *"……

Это компилятор выдаёт на инициализацию массива fonts[FONT_COUNT] переменной font_08x08_table.
Как правильно записать это в IAR-е? Нужно иметь шрифты (минимум два) во флеш памяти и передавать их в процедуру.


если во Flash то вместо const в IAR нужно писать __flash
немного непонятно как описана структура, но может имелось ввиду такое:
Код
typedef unsigned int uint8_t;
__flash uint8_t font_08x08_table[] = {0,1,2,3,4,5,6,7,8 };
struct FONT_DEF {
  char w;
  char h;
  uint8_t __flash *ptable;
  char g;
  char j;
  char k;
};
struct FONT_DEF fonts[1] = {8, 8, font_08x08_table, 0x00, 0xFF, 0x2E};
prottoss
Большой сорри автору темы и уважаемым ALL за оффтоп. Интересно, всем приходят уведомления о новых темах и ответах на подписанные темы на мыло? Обсуждение проблемы здесь http://electronix.ru/forum/index.php?showtopic=23885
Dog Pawlowa
Цитата(&-rey @ Nov 22 2006, 14:42) *
если во Flash то вместо const в IAR нужно писать __flash
немного непонятно как описана структура, но может имелось ввиду такое:

Не путайте AVR и MSP - это две разных архитектуры, в MSP одно адресное пространство и используется const.
А предложение по изменению структуры правильное. Хотя бы потому, что получалось, что таблица должна была быть дважды в памяти.
Oleg_IT
&-rey прав, именно эта структура имелась ввиду, я просто не стал её полностью раскрывать.
И всё же не понятно как решить эту проблему?

………………
Прошу прощение поторопился я, вопрос решён по &-rey
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.