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

 
 
> Вопрос по HI-Tech C, Помогите разобраться...
DenisIV
сообщение Apr 12 2009, 11:10
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 11-12-08
Из: Республика Беларусь, г.Минск
Пользователь №: 42 380



Вобщем есть такой вопросик:
Есть подпрограмма(функция или процедура-не важно).
В ней таблица вида
Код
void Table1(void)
{
#asm
dw 0x3FF,0x3FF// и так далее...
#endasm
}

почему asm,dw 0x... спросите вы: для того, что бы я мог использовать все 14 бит flash памяти. можно задать как массив во флэш,но при реализации компилятор сделает таблицу вида:
Код
retlw 0xFF
retlw 0x1F

и т.д.

собственно, сам вопрос: как можно считать эти данные внутри функции Table1 и если не вызывается данная функция, как заставить компилятор её не исключать при сборке.

Считать флэш у меня получается, а присвоить присвоить переменной адрес функции-не получается.
Да, проц = PIC16F876A и(или) PIC16F886

Сообщение отредактировал DenisIV - Apr 12 2009, 11:11
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DenisIV
сообщение Apr 13 2009, 00:10
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 11-12-08
Из: Республика Беларусь, г.Минск
Пользователь №: 42 380



Огромное вам сапасибо, testerplus , я более ёмкого и конкретного ответа даже не ожидал.
Буду тестировать на проекте как проснусь, сразу отпишусь.
Алгоритм со сжатием не подойдёт, так как данные уже упаковны не хуже GSM упаковки... Но всё равно биг спс !!!
Я думаю, считывание типа Temp=FLASH_READ(MyTable+OffSet) должно пройти...
Есть ещё пара мелких локальных вопросов, которые я хотел бы задать, но это потом...
Адреналин, оказывается, вырабатывается не только в случае опасности, а так же в случае удачной компиляци... smile.gif
Go to the top of the page
 
+Quote Post



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

 


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


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