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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Непрерывная память для PIC-ов

Непрочитано 08.05.2010, 18:03  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Непрерывная память для PIC-ов

Недавно начал работать с PIC-ми, на мой взгляд такое рваное
распределение памяти неудобно для использования. Решил выстроить
память в непрерывные(линейные) адреса 0x00-0xff следующим образом:
0x60-0x6f банк0 --› 0x00-0x0f
0x20-0x6f банк1 --› 0x10-0x5f
0x20-0x6f банк2 --› 0x60-0xaf
0x20-0x6f банк3 --› 0xb0-0xff


Работаю MPLAB IDE. Пример для PIC16F88.

Чтение из линейного адреса 0xb2 выглядит так:

movlw 0xb2
call read_routine

на выходе в W прочитанный байт


Запись 0xaa в линейный адрес 0Xb2:

banksel 0
movlw 0xaa ;данные, которые
movwf WRITE_BYTE ;надо записать
movlw 0xb2
call write_routine

Копирование из одного участка памяти в другой(непересекающийся)
использую макрос

COPY_MEM read_address,write_address,count

read_address откуда
write_address куда
count сколько байтов

В моем проекте прописывается память своими адресами.
Если закоментарить строку goto Init_0015 то можно
проверить копирование памяти.
Вложения:
Тип файла: rar JQ017_L_M.rar (14.2 Кб, 40 просмотров)
Реклама:
zelvans вне форума  
Непрочитано 08.05.2010, 18:28  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Дааа проблема целая с этими банками в пиках,как в 24 серии не знаю,но вот в 18 ОЗУ так и разбита тож на банки
Хотя компилятор на Си все это сглаживает,а на ассамблере туго.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 08.05.2010, 20:39  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Основные сложности возникают при работе с большими объемами данных, для простых проектов хватает и одного банка памяти. Большой объем данных предполагает и большой объем кода для их обработки, а тут уже и прямая дорога к С-компиляторам
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 08.05.2010, 20:50  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Мыши плакали, кололись, но продолжали есть кактус.

Существуют контроллеры (даже среди ПИКов) с абсолютно линейной адресацией памяти. Какой смысл вначале создавать себе проблему, а затем мужественно с ней бороться?
niXto вне форума  
Непрочитано 08.05.2010, 21:45  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Еще в ПИКах сильно бесит, что, когда в TRIS пишешь "1", он становится на вход, хотя удобнее - на выход. Тут производители ПИКов явно не досмотрели. Поэтому я тоже написал функцию. Думаю, она окажется многим полезной:

Код:
WRITE_TRISA:
    bsf     STATUS, RP0
    bcf     STATUS, RP1
    xolrw   0xFF
    movwf   TRISA
    clrf    STATUS
    return

WRITE_TRISB:
    bsf     STATUS, RP0
    bcf     STATUS, RP1
    xolrw   0xFF
    movwf   TRISB
    clrf    STATUS
    return

и т.д.
Потом вызываем из программы так:
Код:
    movlw   0x00001111     ; RB0..RB3 - выходы, 
                           ; RB4..RB7 - входы
    call    WRITE_TRISB
По-моему очень удобно
testerplus вне форума  
Непрочитано 08.05.2010, 21:53  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Сообщение от testerplus Посмотреть сообщение
Еще в ПИКах сильно бесит, что, когда в TRIS пишешь "1", он становится на вход, хотя удобнее - на выход. Тут производители ПИКов явно не досмотрели.
Виктор, не пугайте меня.
1 - I Input, 0- O Output. Имхо всё логично.
Цитата:
По-моему очень удобно
Наверное шутка.
st_1 вне форума  
Непрочитано 08.05.2010, 22:00  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Сообщение от st_1 Посмотреть сообщение
Виктор, не пугайте меня.
1 - I Input, 0- O Output. Имхо всё логично.
Шутка, конечно (Кстати, следую той же логике: I = 1, O = 0 )

Автоу темы: насчет косвенной адресации для Вашей схемы подумайте.
testerplus вне форума  
Непрочитано 08.05.2010, 22:02  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Сообщение от niXto Посмотреть сообщение
Мыши плакали, кололись, но продолжали есть кактус.
Существуют контроллеры (даже среди ПИКов) с абсолютно линейной адресацией памяти. Какой смысл вначале создавать себе проблему, а затем мужественно с ней бороться?
А с каким семейством у начинающих нет проблем?
Только не говорите, что "с АВР нет проблем".
st_1 вне форума  
Непрочитано 09.05.2010, 06:35  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Автоу темы: насчет косвенной адресации для Вашей схемы подумайте.[/QUOTE]

Не совсем понял насчет косвенной адресации. У меня для адреса
определяется банк и в FSR заносится уже модифицированный под
этот банк адрес и далее movf INDF,0.
READ_FSR и WRITE_FSR выступают в роли прообраза FSR в процедуре
копирования участка памяти
zelvans вне форума  
Непрочитано 09.05.2010, 06:40  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Re: Непрерывная память для PIC-ов

Сообщение от testerplus Посмотреть сообщение
Автоу темы: насчет косвенной адресации для Вашей схемы подумайте
Не совсем понял насчет косвенной адресации. У меня для адреса
определяется банк и в FSR заносится уже модифицированный под
этот банк адрес и далее movf INDF,0.
READ_FSR и WRITE_FSR выступают в роли прообраза FSR в процедуре
копирования участка памяти
zelvans вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование HI - TECH для PIC контроллеров ST_Senya Микроконтроллеры, АЦП, память и т.д 27 22.10.2010 18:45
Опыт применения PIC для вывода на графические ЖКИ welcome61 Микроконтроллеры, АЦП, память и т.д 10 17.03.2010 13:01
Вход в прерывания для PIC микроконтроллеров dimmich Микроконтроллеры, АЦП, память и т.д 4 06.12.2009 17:17
Сравнение средств разработки для микроконтроллеров AVR и PIC silic Микроконтроллеры, АЦП, память и т.д 24 04.12.2009 07:36


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.