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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема при прогр-ии ATtiny13, Проблема при прогр-ии ATtiny13 
:(
    Опции темы
interesuuwiysia
Дата 24.9.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток!
Столкнулся с проблемой при прогр-ии АТини13... Пытаюсь использовать функцию high(variable) в следующем контексте:

.DSEG

    var1:    .BYTE 2
    var2:    .BYTE 1

.CSEG

setup:

    Set_Stack;

begin:    

    ldi r18, 0xAB
    ldi r19, 0xCD
    ldi r26, $0000
    ldi r30, $0060

    ;sts $0060,r18      ;
    ;sts $0061,r19      ;this block works properly
    ;sts $0062,r18      ;

    sts high(var1), r18    ;mistake occures here 
    sts low(var1), r19
    sts var2, r18

    ;ld r20, Z+
    ;ld r21, Z+
    ;ld r22, Z

    lds r20, low(var1)
    lds r21, high(var1)
    lds r22, var2

При этом все вроде работает правильно, но только вот при выполнении строки sts high(var1), r18 значение регистра r18 почему-то записывается в регистр r0..... Перерыл уже всю имеющуюся литературу (описание контроллера, Instruction Set, и хэлп по авр студио 4.12) но понимание проблемы ко мне до сих пор не пришло... В чем я ошибаюсь?

За ранее благодарен!
PM MAIL   Вверх
Den64
Дата 8.10.2007, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



  var1 - ссылка указывает на ОЗУ адрес которой, кажись, начинается с 0x60.

  Так-как var1 обявлена первой, то её значение адреса должно быть 0x60.

  Тогда low(var1), будет равно 60h, а high(var1) равно 0. Нулевой адрес имеет r0, кажись.

  Если нужно записать значение из регистровой пары r18/r19, то нужно писать так:

Код

  ;.....
  sts var1, r18 
  sts var1 + 1, r19
  ;....




Это сообщение отредактировал(а) Den64 - 8.10.2007, 21:19
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

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


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

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

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


 




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


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

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