我已经对这个错误进行了大约6个小时的排除故障,我无法弄明白。我有一个非常相似的项目,工作得很好,但我无法正确组装。我得到4个错误,都说“Undefined symbol:ADtoDBM”
.macro cpsne
cp @0, @1
in r0, SREG
sbrc r0, 1
.endmacro
.macro Output
ldi r16, @0
rcall SerialPutChar
.endmacro
.macro LONGRCALL
ldi ZH, high(@0) ;the error points me to this line
ldi ZL, low(@0) ;the error points me to this line
icall
.endmacro
.macro SRAMToEE
lds r16, @0
out EEDR, r16
sts @1, r16
ldi r16, @1
out EEARL, r16
rcall EEWrite
.endmacro
我在宏LONGRCALL下标记了引发错误的2行。
它还指向了其他2个位置,其中一个位于此处,另一个位置完全相同。
Filter_SS:
ldi r17, 'S'
cpse r16, r17
rjmp Filter_SF
rcall QueueInit
LONGRCALL ADtoDBM ;error points to this line.
clr r18
longrcall HexToBCD
mov r16, r12
mov r17, r13
rcall hex2Ascii
mov r16, r21
rcall SerialPutChar
mov r16, r20
rcall SerialPutChar
mov r16, r19
rcall SerialPutChar
ldi r16, '.'
rcall SerialPutChar
mov r16, r18
rcall SerialPutChar
rjmp prompt
ADtoDBM指向另一个发布在
下面的源文件ADtoDBM:
lds r16, InputStatus
sbrs r16, 0
rjmp ADtoDBMStart
ldi r16, 0x0f ; HEX for 9999
ldi r17, 0x27
ret
我没有写这段代码。大约15年前,它写的是我们制造但不再使用的旧产品。任何帮助表示赞赏 谢谢,
塔克