реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Инициализация переменных в структуре
Oleg_IT
сообщение Nov 22 2006, 13:40
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



В примере работы с графическим ЖКИ фонты определяются так
/* Таблица фонта 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-е? Нужно иметь шрифты (минимум два) во флеш памяти и передавать их в процедуру.
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Nov 22 2006, 14:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(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};
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 22 2006, 16:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Большой сорри автору темы и уважаемым ALL за оффтоп. Интересно, всем приходят уведомления о новых темах и ответах на подписанные темы на мыло? Обсуждение проблемы здесь http://electronix.ru/forum/index.php?showtopic=23885


--------------------
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 22 2006, 18:38
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(&-rey @ Nov 22 2006, 14:42) *
если во Flash то вместо const в IAR нужно писать __flash
немного непонятно как описана структура, но может имелось ввиду такое:

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Nov 23 2006, 08:56
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



&-rey прав, именно эта структура имелась ввиду, я просто не стал её полностью раскрывать.
И всё же не понятно как решить эту проблему?

………………
Прошу прощение поторопился я, вопрос решён по &-rey
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016