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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 02.03.2010, 18:19   #11
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Косвенная адресация данных в PIC16F690

Сообщение от picavr Посмотреть сообщение
Если честно не совсем понял о переменных, это ведь директивы препроцессора.
Ну что вы...
Код:
MyVar equ 0x110
BANKSEL MyVar
Реклама:
realid вне форума  
Непрочитано 02.03.2010, 18:23   #12
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: Косвенная адресация данных в PIC16F690

Для дополнительного удобства используются псевдо инструкции
http://ww1.microchip.com/downloads/e...ard_30400g.pdf
http://onembedding.bialix.com/articles/synonyms/
__________________
warez
urry вне форума  
Непрочитано 02.03.2010, 18:31   #13
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Косвенная адресация данных в PIC16F690

Сообщение от Paveel Посмотреть сообщение
зачем они вообще зашифровали ОЗУ с этими банками я так и не понял, что нельзя было сделать одним массивом? Кто бы объяснил.
Когда ширина кода комманды ограничена (12-14-16 бит), а хочется(и нужно) иметь доступ к большему количеству данных, то для этих целей и используется разделение памяти данных на банки. Основная идея заключается в том, что можно организовать хранение денных так, чтобы например для одной процедуры (функции) данные были доступны в одном банке, а для другой - в другом. Сама идея не нова и используется очень давно, даже в РС,(правда с несколько другими целями)
MisterDi вне форума  
Непрочитано 02.03.2010, 19:13   #14
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Косвенная адресация данных в PIC16F690

Сообщение от realid Посмотреть сообщение
Ну что вы...
Код:
MyVar equ 0x110
BANKSEL MyVar
так это то же самое
Код:
#define TEMP_CUNTER 0xA7;1 банк
#define SAVE_CUNTER 0x120;2 банк

BANKSEL TEMP_CUNTER
MOVF 	TEMP_CUNTER,W
BANKSEL SAVE_CUNTER
MOVWF   SAVE_CUNTER
Хотя я адреса переменных объявляю не фиксировано:

Код:
REGISTERS_BANK0	UDATA_SHR	20;0 банк
;или REGISTERS_BANK0	UDATA	20
TMR0W	RES	1	;СОХРАНЯТЬ W
TMR0S	RES	1	;СОХРАНЯТЬ STATUS
TMR0F	RES	1	;СОХРАНЯТЬ FSR
TMR0P	RES	1	;СОХРАНЯТЬ PCLATH
TEMPT0	RES	1	;ВРЕМЕННЫЙ ДЛЯ ПРЕРЫВАНИЙ TMR0
FLAGS0	RES	1	;флаги
FLAGS1	RES	1	;

REGISTERS_BANK1	UDATA	0A0 ;1 банк
#define LENG_BUFER_ADC_CHN0 8
#define LENG_BUFER_ADC_CHN1 8
#define LENG_BUFER_USART 32

TMR0WB1	RES	1	;СОХРАНЯТЬ W
TMR0SB1	RES	1	;СОХРАНЯТЬ STATUS
TMR0FB1	RES	1	;СОХРАНЯТЬ FSR
TMR0PB1	RES	1	;СОХРАНЯТЬ PCLATH
BUFER_ADC_CHN0	RES	LENG_BUFER_ADC_CHN0	
BUFER_ADC_CHN1	RES	LENG_BUFER_ADC_CHN1
BUFER_USART_TX	RES	LENG_BUFER_USART	
BUFER_USART_RX	RES	LENG_BUFER_USART	

REGISTERS_BANK2	UDATA	00x120 ;2 банк
TMR0WB2	RES	1	;СОХРАНЯТЬ W
TMR0SB2	RES	1	;СОХРАНЯТЬ STATUS
TMR0FB2	RES	1	;СОХРАНЯТЬ FSR
TMR0PB2	RES	1	;СОХРАНЯТЬ PCLATH
SET_CUNTER	RES	1

Последний раз редактировалось picavr; 02.03.2010 в 19:42.
picavr вне форума  
Непрочитано 02.03.2010, 19:25   #15
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Косвенная адресация данных в PIC16F690

Сообщение от picavr Посмотреть сообщение
Хотя я адреса переменных объявляю не фиксировано
Я тоже......
realid вне форума  
Непрочитано 03.03.2010, 17:14   #16
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Косвенная адресация данных в PIC16F690

ИМХО для доступа к банкам 1,2,3 лучше пользовать FSR, лучше выделить в подпрограмму, располагать их во всех страничках програмной памяти по одному адресу: Тогда из всех страниц програмной памяти будет доступна без переключения банков.
Код:
                           MOVLW  ADR_VARIABLE
                           CALL READ_INDF_BANK01
                           MOVLW  ADR_VARIABLE
                           CALL READ_INDF_BANK23

INDF_READ_RAM_P0   CODE     20
READ_INDF_BANK23
                           BSF STATUS,IPR0
                           GOTO       READ_INDF_BANK01+1
READ_INDF_BANK01
                           BCF STATUS,IPR0
                           MOVWF  FSR
                           MOVF    INDF,W
                           RETURN
INDF_READ_RAM_P1    CODE     820
READ_INDF_BANK23
                           BSF STATUS,IPR0
                           GOTO       READ_INDF_BANK01+1
READ_INDF_BANK01
                           BCF STATUS,IPR0
                           MOVWF  FSR
                           MOVF    INDF,W
                           RETURN
INDF_READ_RAM_P2    CODE     1020
READ_INDF_BANK23
                           BSF STATUS,IPR0
                           GOTO       READ_INDF_BANK01+1
READ_INDF_BANK01
                           BCF STATUS,IPR0
                           MOVWF  FSR
                           MOVF    INDF,W
                           RETURN
INDF_READ_RAM_P3    CODE     1820
READ_INDF_BANK23
                           BSF STATUS,IPR0
                           GOTO       READ_INDF_BANK01+1
READ_INDF_BANK01
                           BCF STATUS,IPR0
                           MOVWF  FSR
                           MOVF    INDF,W
                           RETURN
picavr вне форума  
Закрытая тема

Закладки


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

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

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


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


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