Проблемы с RamEnd
-
genadijs2009
- Родился
- Сообщения: 8
- Зарегистрирован: Ср май 09, 2012 11:56:11
Проблемы с RamEnd
добрый день
avr studio ругаетса : Operand(s) out of range in 'ldi r16,0x45f'
на строку : ldi Temp,RamEnd
atmega 8
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
Вы скорее всего пытаетесь загрузить в 8-ми битный регистр больше чем он может вместить.
-
genadijs2009
- Родился
- Сообщения: 8
- Зарегистрирован: Ср май 09, 2012 11:56:11
Re: проблемы с RamEnd
так выгледет програма, взятая со обучалке.
.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
.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
Пробуем так:
Код: Выделить всё
ldi Temp,Low(RamEnd) ;инициализация стека
out SPL,TempDocendo discimus
- masterpc
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Чт авг 13, 2009 08:22:53
- Откуда: Vinnitsa
Re: проблемы с RemEnd
Точно, поднял свои старые асмовские коды, у меня тоже так:
Код: Выделить всё
ldi Temp, LOW(RAMEND)
Out spl, temp
- Реклама
-
genadijs2009
- Родился
- Сообщения: 8
- Зарегистрирован: Ср май 09, 2012 11:56:11
Re: проблемы с RemEnd
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: проблемы с RemEnd
Пробуем так:
Код: Выделить всё
ldi Temp, HIGH(RAMEND)
Out sph, temp
ldi Temp, LOW(RAMEND)
Out spl, tempDocendo discimus
-
genadijs2009
- Родился
- Сообщения: 8
- Зарегистрирован: Ср май 09, 2012 11:56:11
Re: проблемы с RemEnd
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: проблемы с RemEnd
Потому, что в меге8 стек двухбайтный. И засылается в два приема - отдельно старшая часть и младшая часть.
Docendo discimus
-
genadijs2009
- Родился
- Сообщения: 8
- Зарегистрирован: Ср май 09, 2012 11:56:11
Re: проблемы с RemEnd
ага, спасибо еще раз. 


