$regfile = "m16def.dat"
$crystal = 8000000


Dim A As Word
Dim B As Word
A = 500
B = 1000

Waitms A
Waitms B
Waitus A
Waitus B

End

erste sahne.....

mit fastavrbasic 16bitvariable (8mhz), 1us geht für den sprung und rücksprung verloren :

Sub wait_us(wait_wert_us as word )

$Asm
lds R19,wait_wert_us+1
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
WGLOOP4:
ldi R17, $01
WGLOOP3:
Nop
Nop
dec R17
brne WGLOOP3
dec R18
brne WGLOOP4
$EndAsm
End Sub