PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fehlermeldung in asm-routine



robby-fant
22.08.2006, 17:20
Hallo, ich bekomme hier "lds R19, wait_wert_us+1" und hier "lds R19, wait_wert_us " folgende fehlermeldung :

illegal character [expected [,got'+']
illegal character [expected [,got']

Wie kann der Wortwert(low) nun richtig übergeben werden?



Dim wait_wert_us as word

Sub Wait_us()

$asm
lds R19, wait_wert_us+1 (Fehlermeldung)
dec R19
brmi weiter
inc R19
Wgloop2:
ldi r18,255
Wgloop1:
ldi R17, $01
Wgloop0:
Nop
Nop
dec R17
brne WGLOOP0
dec R18
brne WGLOOP1
dec R19
brmi weiter
brne WGLOOP2
Weiter:
lds R18,wait_wert_us (Fehlermeldung)
Wgloop4:
ldi R17, $01
Wgloop3:
Nop
Nop
dec R17
brne WGLOOP3
dec R18
brne WGLOOP4
$end Asm

End Sub

robocat
22.08.2006, 17:36
mag sein dass ich mich täusche, aber ein word sind 2 byte. die passen natürlich nicht in ein byte. also eher Dim as Byte.

addition (wait_wert_us+1) geht auch net. abgesehen davon, dass du danach sofort wieder dekrementierst - womit das ganze recht sinnlos wird - musst du das inkrement explizit durchführen:

lds R19, wait_wert_us
inc R19

wenn ich mich täusche, korrigiert mich..

gruesse

PicNick
22.08.2006, 17:47
Auf jeden Fall mit "brackets":

lds R19, {Wait_wert_us} 'low val
lds R20, {Wait_wert_us+1 } 'high val