| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Как значение из памяти программ
08.02.2005, 17:00
|
|
|
Akmal
Гость
|
Как значение из памяти программ
Всем большой привет.
Когда то давно я пробовал себя в програмировании Z80, и даже написал свой АОН.
Недавно появилась необходимость написать небольшую прогу на 16F84A.
Короче проблема такая я пишу в тексте
f43 data 1, 2, 3, 4
Компилирую.
Все нормально проходит.
А вот как теперь вытащить эти данные не могу понять.
Для Z80 было просто в регистр (допустим В)загружаешь адресс (а43),затем считываешь данные из регистра на который указывает этот регистр (косвенная адресация).
Люди подскажите как для PIC сделать косвенную адресацию.
Регистры FSR и INDF не помогают.
|
|
|
|
|
19.02.2005, 10:51
|
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
|
Re: Как значение из памяти программ
|
Сообщение от Akmal
|
Всем большой привет.
Короче проблема такая я пишу в тексте
f43 data 1, 2, 3, 4
Компилирую.
Все нормально проходит.
А вот как теперь вытащить эти данные не могу понять.
Для Z80 было просто в регистр (допустим В)загружаешь адресс (а43),затем считываешь данные из регистра на который указывает этот регистр (косвенная адресация).
Люди подскажите как для PIC сделать косвенную адресацию.
Регистры FSR и INDF не помогают.
|
В Z80 адресное пространство одно - и данные, и программа...
В PIC (да и большинстве других МК) - ОЗУ данных и ПЗУ программ - физически разные области памяти со своим механизмом доступа.
С ПИКами дела почти не имел (пара проектов, да и то давно). Но INDF предназначен для работы с ОЗУ - это точно.
В AVR, например, для чтения ПЗУ команд есть специальная команда LPM - load program memory. Ищите аналогичное.
А самое лучшее - скачайте даташит и почитайте. Очень полезно, когда ничего другое не помогает
|
|
|
|
20.02.2005, 01:21
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
|
AN556 тебе поможет
|
Цитата:
|
EXAMPLE 3:
.
org 0x80 ;code location in page 0
movlw offset ;load offset in w reg
call Table
.
.
org 0x0320 ;Table located in page 3
Table:
addwf PCL,F ;add offset to pc to
;generate a computed goto
retlw ’A’ ;return the ASCII char A
retlw ’B’ ;return the ASCII char B
retlw ’C’ ;return the ASCII char C
.
.
.
EXAMPLE 3A:
org 0x80
movlw HIGH Table
movwf PCLATH
movlw offset
call Table
.
.
.
org 0x320
Table:
addwf PCL,F
retlw ’A’
retlw ’B’
.
.
.
|
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Как измерить амплитуду/действ. значение AC?
|
MAXvaLL |
Микроконтроллеры, АЦП, память и т.д |
13 |
26.11.2008 16:08 |
|
Как организовать доступ к памяти?
|
oleggun |
Микроконтроллеры, АЦП, память и т.д |
9 |
30.04.2008 18:42 |
|
Как реализовать блок-памяти
|
electronic-v |
Микроконтроллеры, АЦП, память и т.д |
0 |
26.12.2007 12:51 |
|
Наращение памяти программ
|
anton_avr |
Микроконтроллеры, АЦП, память и т.д |
7 |
17.05.2007 22:28 |
|
подскажите как вывести значение ацп на индикатор
|
ctefan |
Микроконтроллеры, АЦП, память и т.д |
13 |
06.04.2007 10:59 |
Часовой пояс GMT +4, время: 17:48.
|
|