Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инкремент адреса AVR asm, Инкремент адреса и считывание ячеей ОЗУ 
:(
    Опции темы
pettimm
Дата 5.12.2014, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.9.2005

Репутация: 1
Всего: 1



Привет всем! Возник вопрос по AVR asm: "Можно ли как то инкрементировать адрес в команде LDS temp,$0060 ?? или какой другой  вариант этого решения?  Это нужно например когда нужно считать сто ячеек, что бы не писать сто строчек с камандой LDS. Спасибо.
PM MAIL   Вверх
Romikgy
Дата 5.12.2014, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Код

ldi r30,$60 ; Set Z low byte to $60
ld r0,Z+ ; Load r0 with data space loc. $60(Z post inc)
ld r1,Z ; Load r1 with data space loc. $61



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
pettimm
Дата 5.12.2014, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.9.2005

Репутация: 1
Всего: 1



1.Тут понятно:
ldi r30,$60 ; Set Z low byte to $60
2.тут: загружаем в r0 из Z с инкрементом
ld r0,Z+ ; Load r0 with data space loc. $60(Z post inc)
зачем загружаем в r0 ? нельзя сразу инкрементировать Z ?
и сразу закинуть из Z в R1&
3.Тут: Мы закидываем информацию в R1  по адресу что в регистре Z  ???
ld r1,Z ; Load r1 with data space loc. $61

Это сообщение отредактировал(а) pettimm - 5.12.2014, 16:14
PM MAIL   Вверх
Romikgy
Дата 5.12.2014, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(pettimm @  5.12.2014,  15:10 Найти цитируемый пост)
зачем загружаем в r0 ? 

а для чего тогда вообще читать?
Цитата(pettimm @  5.12.2014,  15:10 Найти цитируемый пост)
 нельзя сразу инкрементировать Z ?

можно
Цитата(pettimm @  5.12.2014,  15:10 Найти цитируемый пост)
Мы закидываем информацию в R1  по адресу что в регистре Z  ???

да


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
pettimm
Дата 5.12.2014, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.9.2005

Репутация: 1
Всего: 1



ну я имел ввиду зачем использовать два регистра для чтения
но инкрементировать z можно только так?: ld r0,Z+ 
 если нас интересует инфа только с адреса $60 то так думаю будет нормально:

ldi r30,$59 ; Set Z low byte to $59
metka:
ld r0,Z+; тут интересует только инкремент Z
ld r1,Z ; а тут сразу читаем с нужного начального адреса$60
;и только в один нужный регистр.

rjmp metka; и читаем ячейки дальше по адресам
PM MAIL   Вверх
Romikgy
Дата 5.12.2014, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



это пример! а не решение вашей задачи!!!



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
pettimm
Дата 9.12.2014, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 24.9.2005

Репутация: 1
Всего: 1



Да я понял, спасибо...)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.