Проблемы с RamEnd

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
genadijs2009
Родился
Сообщения: 8
Зарегистрирован: Ср май 09, 2012 11:56:11

Проблемы с RamEnd

Сообщение genadijs2009 »

добрый день
avr studio ругаетса : Operand(s) out of range in 'ldi r16,0x45f'
на строку : ldi Temp,RamEnd
atmega 8
Реклама
Аватара пользователя
masterpc
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Re: проблемы с RemEnd

Сообщение masterpc »

Вы скорее всего пытаетесь загрузить в 8-ми битный регистр больше чем он может вместить.
Реклама
genadijs2009
Родился
Сообщения: 8
Зарегистрирован: Ср май 09, 2012 11:56:11

Re: проблемы с RamEnd

Сообщение genadijs2009 »

так выгледет програма, взятая со обучалке.


.include "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 DDRB,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 PortB,Temp

ldi Temp1,0
ldi Temp2,0
ldi Temp3,10

Loop: dec Temp1
brne Loop

dec Temp2
brne Loop

dec Temp3
brne Loop

ret
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: проблемы с RemEnd

Сообщение pyzhman »

Пробуем так:

Код: Выделить всё

ldi Temp,Low(RamEnd) ;инициализация стека
out SPL,Temp
Docendo discimus
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
masterpc
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Чт авг 13, 2009 08:22:53
Откуда: Vinnitsa

Re: проблемы с RemEnd

Сообщение masterpc »

Точно, поднял свои старые асмовские коды, у меня тоже так:

Код: Выделить всё

ldi Temp, LOW(RAMEND)   
Out spl, temp
Реклама
genadijs2009
Родился
Сообщения: 8
Зарегистрирован: Ср май 09, 2012 11:56:11

Re: проблемы с RemEnd

Сообщение genadijs2009 »

:beer: получилось. большое спасибо. avr studio не ругаетса, но программа не роботает. все время один диод горит.
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: проблемы с RemEnd

Сообщение pyzhman »

Пробуем так:

Код: Выделить всё

ldi Temp, HIGH(RAMEND)   
Out sph, temp
ldi Temp, LOW(RAMEND)   
Out spl, temp
Docendo discimus
genadijs2009
Родился
Сообщения: 8
Зарегистрирован: Ср май 09, 2012 11:56:11

Re: проблемы с RemEnd

Сообщение genadijs2009 »

:shock: :beer: спасибо все роботает. только я не понял почему так?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: проблемы с RemEnd

Сообщение pyzhman »

Потому, что в меге8 стек двухбайтный. И засылается в два приема - отдельно старшая часть и младшая часть.
Docendo discimus
genadijs2009
Родился
Сообщения: 8
Зарегистрирован: Ср май 09, 2012 11:56:11

Re: проблемы с RemEnd

Сообщение genadijs2009 »

ага, спасибо еще раз. :))
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»