Технический форум
Вернуться   Технический форум > Электроника, самоделки и техника > Форум по электронике > Микропроцессоры


Ответ
 
Опции темы Опции просмотра
Старый 08.10.2011, 07:23   #1 (permalink)
Slava_D
Member
 
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию PIC16F84A, таблица и счётчик команд

Здравствуйте, уважаемые форумчане! Создаю проект на 16-м пике, наткнулся на камень. Не приятный такой. Дело вот в чём- нужно создать таблицу, большую таблицу, занимающую более половины памяти программ, программирую на асме, от того мои друзья- инструкции retlw и de. Всё бы ничего (знающий уже наверное понял, к чему я клоню), но прыгать средствами регистра pcl и pclath корректно не получается. Никак не могу перепрыгнуть через первые 256 строк, чтобы попасть на 257-ю. Заношу в рег-р pcl нули, а в pclath нулевой бит ставлю 1, и попадаю в аккурат на 356 строку. Меняю последовательность бит в pcl на 00000001, -соответственно, 357-я, опять мимо ((( Код примерно такой-

bsf 0x0a
movlw b'00000000'
movwf 0x02

Подскажите, что не так делаю?

И ещё вопрос- как мне отследить, переполнился ли регистр, перепрыгнув через 255, чтобы, например, прибавить старший разряд. Взять, например, команду addwf, где прибавление может быть любым числом до 255 (в моём случае даже намнооого меньше).

Может есть где почитать по поводу подобных длинных переходов по таблице с применением счётчика команд и задействования pcl и pclath? Что- то сам искать убился ((

Пожалуйста, выручайте.
Slava_D вне форума   Ответить с цитированием

Старый 08.10.2011, 07:23
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

По данной тематике есть и другие темы

Электронная таблица
Хеш-таблица на основе стеков.
Матрица (таблица)
Список системных команд Пуск + Сочетания клавиш
NVIDIA Geforce 9600GT и Другие(таблица)
Постоянно вылетает таблица файлов

Старый 10.10.2011, 14:01   #2 (permalink)
Slava_D
Member
 
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Товарищи! Ну что, прям таки нет гуру в этом деле? Нашёл в нете, задав поиск pclath, но понятного увидел мало. Хотелось бы пару вопросов задать!
Slava_D вне форума   Ответить с цитированием
Старый 11.10.2011, 13:24   #3 (permalink)
korsaj
Member
 
Регистрация: 13.05.2011
Сообщений: 401
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 274
По умолчанию

Вот те бук (кинул в личку). Смотри параграф 6, точнее 6.2, 6.2.4, 6.2.6 и 6.5.
У меня проблем не возникало.
korsaj вне форума   Ответить с цитированием
Старый 11.10.2011, 13:28   #4 (permalink)
korsaj
Member
 
Регистрация: 13.05.2011
Сообщений: 401
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 274
По умолчанию

Будуть питання, питай
korsaj вне форума   Ответить с цитированием
Старый 11.10.2011, 20:41   #5 (permalink)
Slava_D
Member
 
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо, но этот мануал у меня и так перед глазами находится, как ни кручу, никак в механизм не "въеду", постоянно получаю неожиданный результат, т.е. прыжки в такие места, что понять не могу, почему там, а не тут оказались. Именно с применением рег-ра pclath.

Если не затруднит, объясните подробнее, пожалуйста.
Slava_D вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 12.10.2011, 09:56   #6 (permalink)
korsaj
Member
 
Регистрация: 13.05.2011
Сообщений: 401
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 274
По умолчанию

Кинь проэктик я посмотрю и скажу что не так.
Можно в дебуге все посмотреть и станет ясно.
korsaj вне форума   Ответить с цитированием
Старый 12.10.2011, 12:34   #7 (permalink)
korsaj
Member
 
Регистрация: 13.05.2011
Сообщений: 401
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 274
По умолчанию

посмотри AN556.PDF
korsaj вне форума   Ответить с цитированием
Старый 15.10.2011, 13:46   #8 (permalink)
Slava_D
Member
 
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Приветствую! Спасибо за помощь! Но пока не до этого. Перешел на другой пик, и возникли непонядки. С прошлым пиком такой проблемы не возникало, сделал скрин mplab.
Выходит куча предупреждений, хотя банки переключаю как положено. Почему?
Миниатюры
33853fdfd69e.jpg  
Slava_D вне форума   Ответить с цитированием
Старый 15.10.2011, 18:07   #9 (permalink)
Slava_D
Member
 
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Извиняюсь за "миниатюру", отправлял с коммуникатора. Вот нормальное изображение

Немного "догнал", что надо использовать адреса нулевого банка, только, соответственно, сами банки менять (rp биты). Но, если оставить как есть, то видно, что в Program memory пишется всё верно, а вот мнемоника- указывает на неправильный регистр (в пятой строчке- adcon0,хотя адрессация происходит на adcon1). Странно.
Миниатюры
quest.jpg  
Slava_D вне форума   Ответить с цитированием
Старый 16.10.2011, 06:24   #10 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Вот именно из-за костыля под названием БАНКИ я бросил PIC в пользу AVR.
Long Cat вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 00:55.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.