Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 18.11.2013, 23:23  
Maxim39
Прописка
 
Аватар для Maxim39
 
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
Maxim39 на пути к лучшему
По умолчанию Табличная адресация+PIC+ASM=вылет за пределы страницы памяти.

Здравствуйте Друзья.
Извините за детский вопрос, но меня давно мучает проблема с табличной адресацией. Раньше я решал проблему вылета за границы страницы памяти размещением таблицы в самом начале листинга. Сейчас у меня там достаточно большая подпрограмма обработки прерываний и таблица попадает где то на границу страниц памяти, при этом контролер вылетает и сбрасывается WD. Вопрос состоит в том: можно ли как нибудь предугадать где это произойдет и как нибудь задать положение таблицы принудительно в адресах.
С уважением Максим.

P.S. на форуме не нашел такой темы поэтому спросил.
Реклама:
__________________
Лужу, паяю, ЭВМ починяю.....
Maxim39 вне форума  
Непрочитано 18.11.2013, 23:34  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Табличная адресация+PIC+ASM=вылет за пределы страницы памяти.

Директива org.
alvadep вне форума  
Сказали "Спасибо" alvadep
Maxim39 (19.11.2013)
Непрочитано 19.11.2013, 16:13  
t_ruslan_w
Прописка
 
Регистрация: 24.02.2007
Адрес: Вольногорск, Украина
Сообщений: 59
Сказал спасибо: 0
Сказали Спасибо 33 раз(а) в 18 сообщении(ях)
t_ruslan_w на пути к лучшему
По умолчанию Re: Табличная адресация+PIC+ASM=вылет за пределы страницы памяти.

Например так.
Код:
...
     movlw high(table) 
     movwf PCLATH
...
     call table


org XXX

table andlw b'00001111'
        addwf PCL
     ;           abcdefgh
         retlw b'11111100' ; 0
         retlw b'01100000' ; 1
         retlw b'11011010' ; 2
         retlw b'11110010' ; 3
         retlw b'01100110' ; 4 
         retlw b'10110110' ; 5
         retlw b'10111110' ; 6
         retlw b'11100000' ; 7
         retlw b'11111110' ; 8
         retlw b'11110110' ; 9
         retlw b'11101110' ; a
         retlw b'00111110' ; b
         retlw b'10011100' ; c
         retlw b'01111010' ; d
         retlw b'10011110' ; e
         retlw b'00000000' ; off
В принципе это все есть в ДШ.

AN556, Implementing a Table Read - Microchip

Последний раз редактировалось t_ruslan_w; 19.11.2013 в 16:41.
t_ruslan_w вне форума  
Сказали "Спасибо" t_ruslan_w
Maxim39 (19.11.2013)
Непрочитано 19.11.2013, 23:19  
Maxim39
Прописка
 
Аватар для Maxim39
 
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
Maxim39 на пути к лучшему
По умолчанию Re: Табличная адресация+PIC+ASM=вылет за пределы страницы памяти.

Сообщение от t_ruslan_w Посмотреть сообщение
Например так.

org XXX

table andlw b'00001111'
addwf PCL
; abcdefgh
retlw b'11111100' ; 0
retlw b'01100000' ; 1
retlw b'11011010' ; 2
retlw b'11110010' ; 3
retlw b'01100110' ; 4
retlw b'10110110' ; 5
retlw b'10111110' ; 6
retlw b'11100000' ; 7
retlw b'11111110' ; 8
retlw b'11110110' ; 9
retlw b'11101110' ; a
retlw b'00111110' ; b
retlw b'10011100' ; c
retlw b'01111010' ; d
retlw b'10011110' ; e
retlw b'00000000' ; off
[/code]

В принципе это все есть в ДШ.

AN556, Implementing a Table Read - Microchip
Здесь все понял.
Проверил: таблицу закинул повыше он её туда разместил.
Прочитал AN556 полностью и теперь не пойму выражение:

movlw high(table)
movwf PCLATH
...
call table

Что оно дает мне, и обязательно ли оно?
Если не трудно поясните, хочу распедалить этот вопрос до конца.
Миниатюры:
Нажмите на изображение для увеличения
Название: PCL.JPG
Просмотров: 65
Размер:	85.9 Кб
ID:	54973  
__________________
Лужу, паяю, ЭВМ починяю.....
Maxim39 вне форума  
Непрочитано 20.11.2013, 00:22  
otest
Почётный гражданин KAZUS.RU
 
Регистрация: 29.01.2005
Адрес: Воронеж
Сообщений: 1,384
Сказал спасибо: 24
Сказали Спасибо 243 раз(а) в 182 сообщении(ях)
otest на пути к лучшему
По умолчанию Re: Табличная адресация+PIC+ASM=вылет за пределы страницы памяти.

Здесь нужно понимать , что при переполнении PCL не увеличивается PCLATH. Как это происходит с другими регистрами. Поэтому :
movlw high(table) ; загрузим старший байт адреса метки table
movwf PCLATH ; в регистр
MOWFW TEMP ; забираем то что нужно перекодировать через таблицу
CALL table ; переход на метку таблицы
org XXX
table andlw b'00001111' ; маска на старший байт
addwf PCL ; таблица может располагаться в любом месте ,
;но не должна быть длинее 0F
================================================== =
Чтобы иметь таблицу длиной FF нужно её располагать по адресам кратным 0х100.
Перед переходом в таблицу установить нужный бит в PCLATH .
otest вне форума  
Сказали "Спасибо" otest
Maxim39 (20.11.2013)
Непрочитано 20.11.2013, 00:40  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Табличная адресация+PIC+ASM=вылет за пределы страницы памяти.

Если вкратце, программный счетчик PC (другими словами адрес команд) в среднем семействе пиков 13-ти разрядный и складывается из PCH и PCL. Вот PCH как раз и загружается из PCLATH.
А вообще, скачайте на microchip.ru справочник по среднему семейству микроконтроллеров PICmicro. Там найдете ответы на все свои вопросы. Пункт 6.2.4 Счетчик команд PC.
alvadep вне форума  
Сказали "Спасибо" alvadep
Maxim39 (20.11.2013)
 

Закладки
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Linux-ваше мнение Tvenn Делимся опытом 6169 23.08.2015 08:57
Адресация к памяти I2C по адресу Lexil Proteus 2 12.12.2012 12:40
Как в PIC 16f877 переключать страницы памяти? miwutka Микроконтроллеры, АЦП, память и т.д 117 15.06.2012 08:58
Литература по микроконтроллерам (AVR, PIC, ПЛИС и т.д.). Сборка книг - (256 книг+ 27 CD c примерами из книг) [обновление 2011, PDF, DJVU] yurinform Микроконтроллеры, АЦП, память и т.д 5 05.07.2011 19:00
Размещение констант в памяти программ в PIC ST_Senya Микроконтроллеры, АЦП, память и т.д 10 15.10.2009 20:12


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot