реклама на сайте
подробности

 
 
> Перевод проекта от мистера ChaNа, помогите с переходом с asm на IAR
ANTSIR
сообщение Oct 26 2009, 14:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401



Имеется проект от Audio Spectrum Monitor (http://elm-chan.org/works/akilcd/report_e.html)
Пример там выложен, но подключить его к своему проекту в IAR (свой LCD, обвязка и т.д.) не получается.

Компилятор ругается на объявление макроса

.macro ldiw dh,dl, abs
ldi \dl, lo8(\abs)
ldi \dh, hi8(\abs)
.endm

а как сделать правильно понять не могу?
Кто нибудь сталкивался с подобным, или может уже переносил данный проект на IAR?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ANTSIR
сообщение Oct 28 2009, 10:57
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 9-04-09
Пользователь №: 47 401



исправил ffft.s90 с макросами
CODE

ldiw MACRO dh,dl, abs
ldi \dl, lo8(\abs)
ldi \dh, hi8(\abs)
ENDM

subiw MACRO dh,dl, abs
subi \dl, lo8(\abs)
sbci \dh, hi8(\abs)
ENDM

addw MACRO dh,dl, sh,sl
add \dl, \sl
adc \dh, \sh
ENDM

addd MACRO d3,d2,d1,d0, s3,s2,s1,s0
add \d0, \s0
adc \d1, \s1
adc \d2, \s2
adc \d3, \s3
ENDM

subw MACRO dh,dl, sh,sl
sub \dl, \sl
sbc \dh, \sh
ENDM

subd MACRO d3,d2,d1,d0, s3,s2,s1,s0
sub \d0, \s0
sbc \d1, \s1
sbc \d2, \s2
sbc \d3, \s3
ENDM

lddw MACRO dh,dl, src
ldd \dl, \src
ldd \dh, \src+1
ENDM

ldw MACRO dh,dl, src
ld \dl, \src
ld \dh, \src
ENDM

stw MACRO dst, sh,sl
st \dst, \sl
st \dst, \sh
ENDM

clrw MACRO dh, dl
clr \dh
clr \dl
ENDM

lsrw MACRO dh, dl
lsr \dh
ror \dl
ENDM

asrw MACRO dh, dl
asr \dh
ror \dl
ENDM

lslw MACRO dh, dl
lsl \dl
rol \dh
ENDM

pushw MACRO dh, dl
push \dh
push \dl
ENDM

popw MACRO dh, dl
pop \dl
pop \dh
ENDM

lpmw MACRO dh,dl, src
lpm \dl, \src
lpm \dh, \src
ENDM

rjne MACRO lbl
breq 99f
rjmp \lbl
99:
ENDM


FMULS16 MACRO d3,d2,d1,d0 ,s1h,s1l, s2h,s2l ; Fractional Multiply (19clk)
fmuls \s1h, \s2h
movw \d2, T0L
fmul \s1l, \s2l
movw \d0, T0L
adc \d2, EH ;EH: zero reg.
fmulsu \s1h, \s2l
sbc \d3, EH
add \d1, T0L
adc \d2, T0H
adc \d3, EH
fmulsu \s2h, \s1l
sbc \d3, EH
add \d1, T0L
adc \d2, T0H
adc \d3, EH
ENDM


SQRT32 MACRO ; 32bit square root (526..542clk)
clr T6L
clr T6H
clr T8L
clr T8H
ldi BL, 1
ldi BH, 0
clr CL
clr CH
ldi DH, 16
90: lsl T2L
rol T2H
rol T4L
rol T4H
rol T6L
rol T6H
rol T8L
rol T8H
lsl T2L
rol T2H
rol T4L
rol T4H
rol T6L
rol T6H
rol T8L
rol T8H
brpl 91f
add T6L, BL
adc T6H, BH
adc T8L, CL
adc T8H, CH
rjmp 92f
91: sub T6L, BL
sbc T6H, BH
sbc T8L, CL
sbc T8H, CH
92: lsl BL
rol BH
rol CL
andi BL, 0xF8
ori BL, 0x05
sbrc T8H, 7
subi BL, 2
dec DH
brne 90b
lsr CL
ror BH
ror BL
lsr CL
ror BH
ror BL
ENDM


ошибка исчезла, но появилась новая в файле ffft.c
Error[0]: Invalid syntax F:\WORK\PROCESSOR_PROGRAMM\TESTFFT_LCD\ffft.asm 135

в строке

pushw T2H,T2L
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 04:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016