Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Работа с банками данных
evgta Дата: Вс, 12.12.2010, 23:02  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 10.01.2010

Статус: Offline

Помогите. никак немогу разобраться с банками данных т.к объем перевалил за 2кб. В коде большое к-во табличных данных при компиляции выдает code crosses boundary @ 800h. pic16f877a. читание мануалов по работе так и не помогло sad
кусок кода

Сообщение отредактировал evgta - Вс, 12.12.2010, 23:17
ЯНДЕКС Дата: 12.12.2010
retas Дата: Пн, 13.12.2010, 14:57  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 445
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Схожая тема затрагивалась. По моемУ опыту (на Протоне) у вас декларированно под ряд очень много
переменных word типа. Попробуйте попробовать всунуть надуманные переменные между ними типа byte
и желательно не по одному. Если даст бог и такой приём поможет, то потом пробуйте эти чужаки по
одному вычеркивать.
Удачи!
evgta Дата: Пн, 13.12.2010, 15:50  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 10.01.2010

Статус: Offline

Спасибо. В Протоне с таким рядом проблем нет также как и в PICsimulator. Но с протоном пока еще неразобрался толком,
а PICsimulator недостаточен sad . Щас буду пытаться пробовать делать вставки.

Втавки непомогают cry

Сообщение отредактировал evgta - Пн, 13.12.2010, 16:04
DAlexV Дата: Пн, 13.12.2010, 16:36  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (retas)
у вас декларированно под ряд очень много переменных word типа

Да не много 7 word и 1 bit. Итого 15 бит для переменных. Косяк кроется только лишь в постоянном пересчете одой и той же формулы, но с разными значениями углов. Достаточно просто добавить еще одну переменную типа Word в которую по условию будет заноситься значения углов, а в конце уже вставить формулу.
UGOL var word
......
if takt<30000 then UGOL=0
так же исправить для всех условий
......
yoz=takt-grad*UGOL/100
вставить перед LCDOUT $FE, 1,dec imp

экономия памяти будет фантастическая


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
retas Дата: Пн, 13.12.2010, 16:41  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 445
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Жаль.
Пробуйте уменьшить число этих word.
Прикинте все свои wordы под byte - если так идёт, пробуйте менять по одному на word пока
не вылезет неприятность.
Удачи
evgta Дата: Пн, 13.12.2010, 20:40  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 10.01.2010

Статус: Offline

Quote (DAlexV)
экономия памяти будет фантастическая

Перевел. Да. памяти конечно прилично сэкономило. Но проблему не решило т.к это был только кусок кода и при добавлении новых строк компилить больше 2килослов нехочет sad

Quote (retas)
Пробуйте уменьшить число этих word

Проверил все переменныею непонятки с переменной takt съедает больше 1.5 кб при ее переводе с BYTE на WORD и при переходе за 2кб прога снова не компилится


Сообщение отредактировал evgta - Пн, 13.12.2010, 20:55
DAlexV Дата: Пн, 13.12.2010, 21:14  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (evgta)
непонятки с переменной takt съедает больше 1.5 кб при ее переводе с BYTE на WORD и при переходе за 2кб прога снова не компилится

Это как понять ???? Хотя есть предположение почему это все происходит. Нужно АСМ файл посмотреть. А через MPLAB прогнать не пробывал ???? Или Протеусом ????
Скинь все архивом. Интересно стало. А вот слова
Quote (evgta)
при добавлении новых строк компилить больше 2килослов нехочет
наводит на единственную мысль что не доломан PBP из за этого и гюки


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
evgta Дата: Пн, 13.12.2010, 21:53  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 10.01.2010

Статус: Offline

Quote (DAlexV)
Нужно АСМ файл посмотреть. А через MPLAB прогнать не пробывал ???? Или Протеусом ????

ACM приложил. Проверил в протеусе вроде все работает))) Почему тогда ошибку при компиляции выдает???

Прикрепления: GOGOLF.asm (11.9 Kb) · gogolf.pbp (4.6 Kb)

Сообщение отредактировал evgta - Пн, 13.12.2010, 21:54
DAlexV Дата: Пн, 13.12.2010, 22:00  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Забавно. С памятью все прекрасно. 40 байт. Сейчас сольем PBP и поколдуем. Отпишусь

Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Пн, 13.12.2010, 23:33  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (evgta)
Почему тогда ошибку при компиляции выдает???

Попробовал Это не ошибка а предупреждение. оператор GOTO может неправильно работать. На сайте это уже гтето обсуждалось.
Сама прога должна нормально работать у Вас не ипользован оператор GOTO.
P.S.
Когдато я писал проги почти на всю память 876проца вискакивали такиеже предупреждения и в место GOTO использовал BRANCHL. Все работало на ура.
Переходите на протон там таких проблем нету.


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Пн, 13.12.2010, 23:42
evgta Дата: Вт, 14.12.2010, 00:02  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 10.01.2010

Статус: Offline

Спасибо за пояснение. Буду потихоньку осваивать протон
ЯНДЕКС Дата: 14.12.2010
DAlexV Дата: Вт, 14.12.2010, 11:05  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

После танцев с бубнами вокруг PBP пришлось подтягивать высшие силы в лице demanik, за что ему плюс. Спс Николай. От ошибки
Quote (evgta)
code crosses boundary @ 800h
удалось избавиться указав напрямую MCS путь к MPASM. Но после этого уже MPASM стал выдавать предупреждение о переходе через 2 Кб предел. Перестановка местами кусков кода не привело к положительным результатам. При смещении п.программы razchet: на вторую страницу (@ org 0x900) все равно дает предупреждение(но уже одно). Забавная штука этот PBP.
Quote (demanik)
Переходите на протон там таких проблем нету.

Либо на 18 линейку. Там эта проблема уже аппаратно решена. Успехов wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
evgta Дата: Вт, 14.12.2010, 17:33  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 10.01.2010

Статус: Offline

Спасибо. пока оставлю так, а потом по железяке видно будет biggrin
  • Страница 1 из 1
  • 1
Поиск: