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

 
 
> WinAVR: Организация смешенного чтения байтов, слов из таблицы во flash-памяти программ, Есть ли такая возможность ?
MaxiMuz
сообщение Mar 21 2012, 07:53
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658



Таблица представляет из себя чтото типа:
Код
uint8_t tabl[] PROGMEM={0x00,0x12ff,0x02,0x0100,0x40,0x0020,0x3f,0x1000};

чередование целых байтов и слов.
Задается указатель на начало таблицы и затем с помощью команды pgm_read_byte (Ptabl) или pgm_read_word (Ptabl) по порядку читается байты и слова. Но проблема в том, как в записи таблицы корректно указать размер ее содержимого.
Возможно ли вообще такое обращение ?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MaxiMuz
сообщение Mar 22 2012, 06:15
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658



цель такой таблицы это простота ее заполнения , а при написании структуры , там писанины получиться много
Go to the top of the page
 
+Quote Post
XVR
сообщение Mar 22 2012, 09:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(MaxiMuz @ Mar 22 2012, 10:15) *
цель такой таблицы это простота ее заполнения , а при написании структуры , там писанины получиться много

Цель любой таблицы - это что бы ее корректно понял компилятор С. В вашем случае он ее поймет, но результат будет не тот, который вы ожидаете. Ваша таблица будет обрезанна до такой:
Код
uint8_t tabl[] PROGMEM={0x00,0xff,0x02,0x00,0x40,0x20,0x3f,0x00};
и вся будет байтовая.
Так что пишите структуру:
Код
#pragma pack(1)
typedef struct {
uint8_t byte;
unit16_t word;
} MyStruct;

MyStruct tabl[] PROGMEM={{0x00,0x12ff},{0x02,0x0100},{0x40,0x0020},{0x3f,0x1000}};

Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 03:25
Рейтинг@Mail.ru


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