роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: не работает программа на асме
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



Здравствуйте, начал параллельно C учить assemler для atmega8.
написал программу "бегущий огонёк"(обучаюсь с обучалкой на сайте www.radiokot.ru )

вот код:

CODE:
.include "c:\ProgrammingMC\avr\avrasm\APPNOTES\m8def.inc"

.def temp = R16
.def temp1 = R17
.def temp2 = R18
.def temp3 = R19
.def temp4 = R20

.cseg

.org 0

ldi temp, RamEnd
out SPL, temp

ldi temp, 0b11111111
out DDRD, temp


begin:

ldi temp, 0b00000001
rcall delay

ldi temp, 0b00000010
rcall delay

ldi temp, 0b00000100
rcall delay

ldi temp, 0b00001000
rcall delay

ldi temp, 0b00010000
rcall delay

ldi temp, 0b00100000
rcall delay

ldi temp, 0b01000000
rcall delay

ldi temp, 0b10000000
rcall delay

rjmp begin

delay: out PortD, temp

ldi temp1, 0
ldi temp2, 0
ldi temp3, 10

loop:

dec temp1
brne loop

dec temp2
brne loop

dec temp3
brne loop
ret

при компиляции выходит варнинг : Constant (0x45f) out of range (0x00-0xff) ldi temp, RamEnd

я так понял что адрес последней ячейки ОЗУ не входит в temp, в следствии чего вообще не работает вся программа(просто горит светодиод и всё). Что делать?

(Отредактировано автором: 23 Ноября, 2013 - 21:07:38)

 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



У ATmega8 1 килобайт SRAM. Одним байтом всю память не пересчитать. А в регистры общего назначения помещается только один байт. Поэтому нужно загрузить младший и старший байт по очереди.

CODE:
ldi R16, Low(RAMEND)
out SPL, R16
ldi R16, High(RAMEND)
out SPH, R16


Хороший обучающий курс по ассемблеру AVR есть на http://easyelectronics.ru/
Хорошая книга по ассемблеру AVR: Юрий Ревич Практическое программирование Микроконтроллеров AVR на языке ассемблера
И да, AVR Studio лучше.
 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru