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

 
 
> Как прочесть константу с памяти программ?
Jhohn
сообщение Oct 5 2011, 14:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Извиняюсь, с pic только начал работать.

Расположил таблицу в памяти программ. Оболочка MPLAB, compiler C18.

CODE
#pragma romdata const_table_1 = 0x1000

rom const U8 Line_001 = 24;
...
...
...
#pragma romdata


Как прочесть элемент 24? по адресу 0x1000?

Сообщение отредактировал Jhohn - Oct 5 2011, 14:18
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jhohn
сообщение Oct 6 2011, 05:47
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(Jhohn @ Oct 5 2011, 18:16) *
Как прочесть элемент 24? по адресу 0x1000?



CODE
rom U8 *q = &Line_001;
Go to the top of the page
 
+Quote Post
volodya
сообщение Oct 7 2011, 08:10
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 194
Регистрация: 14-02-07
Из: УКРАИНА
Пользователь №: 25 344



Цитата(Jhohn @ Oct 6 2011, 07:47) *
CODE
rom U8 *q = &Line_001;


Так вы определитесь что надо и ЧАВО далее с ЕНтим делать - получить ссылку на константу в ROM памяти, или прочесть константу.
здесь в rom создана ссылка на переменную со значением равным адресу константы Line_001.


--------------------
"Для того чтобы избежать критики, надо ничего не делать, ничего не говорить и никем не быть"
"Каждый из нас бывает дураком по крайней мере пять минут в день; мудрость заключается в том, чтобы не превысить лимит." Элберт Хаббард
Go to the top of the page
 
+Quote Post
Jhohn
сообщение Oct 10 2011, 13:50
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(volodya @ Oct 7 2011, 12:10) *
Так вы определитесь что надо и ЧАВО далее с ЕНтим делать - получить ссылку на константу в ROM памяти, или прочесть константу.
здесь в rom создана ссылка на переменную со значением равным адресу константы Line_001.


Как прочесть элемент 24? по адресу 0x1000?

Я по ссылке получил значение. Сложность заключалась как создать ссылку на таблицу констант в rom, далее как получить значение и остальное это понятно. Или вы о том, что я должен был еще привести пример как получить значение? biggrin.gif


Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Oct 10 2011, 19:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Jhohn @ Oct 10 2011, 16:50) *
Как прочесть элемент 24? по адресу 0x1000?

Я по ссылке получил значение. Сложность заключалась как создать ссылку на таблицу констант в rom, далее как получить значение и остальное это понятно. Или вы о том, что я должен был еще привести пример как получить значение? biggrin.gif


Код
static const double K1mlt[64] =
{
        1.0,            //in0
}

double *pnt;
double value;
pnt= (const double *)(&K1mlt[0]);
value = *pnt;


Это под Hi-Tech (picc18 STD)
Go to the top of the page
 
+Quote Post
Jhohn
сообщение Oct 11 2011, 06:01
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(Ruslan1 @ Oct 10 2011, 23:41) *


Руслан, у меня таблица находится в памяти программ (Rom), я ее расположил по конкретному адресу, и проверил каждый ли байт этой таблицы находится последовательно... Мне потом с этой таблицей нужно работать с помощью одного указателя. В таблице типы данных разные (символы, одно-байтовые и много-байтовые целые).

Цитата(Jhohn @ Oct 6 2011, 09:47) *
CODE

#pragma romdata const_table_1 = 0x1000

rom const U8 Line_001 = 24;
...
...
...
#pragma romdata

rom U8 *q = &Line_001;



При изменении расположения адреса в таблице (например на 0х1100) таблицу почему-то не удается прочитать. В чем может быть "гвоздь"?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 03:29
Рейтинг@Mail.ru


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