Ik wil variabele delays kunnen opgeven,
Dit is in PICBASIC. De Frequentie die ik gebruik is 18.48 MHz,
dus de instructie tijd is 0.2164502 microseconden.
Dit geeft dat delayus niet te gebruiken is.
Nu zoek ik naar delays van 4 - 6 instructies tot 210 instr.
Misschien dat er een ASM guru is die een kortere methode heeft.
Pogingen:
; TEST INSTRUCTION DELAY
SUB:
X = 210 ; 2 instr X = maximaal 210 instr
GoSub Vert ; 1 instr
Vert:
Dec X ;1 instr
If X = 0 Then Return ;4 instr
GoTo Vert ;2 instr
FORNEXT:
For X = 0 To 210 ; 2 instr
Next X ; 5 instr
FORNEXTNEG:
For X = 210 To 0 Step -1
Next X
DECREMENTAL:
X = 210
Instru:
Dec X
If X > 0 Then GoTo Instru
ASSEMBLY
SUB
F1_000064 equ $ ; in [TRAP1848.BAS] X = 210 ; 2 instr X = maximaal 210 instr
Movlw 210
Movwf _X
F1_000065 equ $ ; in [TRAP1848.BAS] GoSub Vert ; 1 instr
Call VERT
VERT
F1_000068 equ $ ; in [TRAP1848.BAS] Dec X ;1 instr
Decf _X,F
F1_000069 equ $ ; in [TRAP1848.BAS] If X = 0 Then Return ;4 instr
Movf _X,F
Btfss STATUS,2
Goto bc@LL2
Return
bc@LL2
F1_000070 equ $ ; in [TRAP1848.BAS] GoTo Vert ;2 instr
Goto VERT
FORNEXT
F1_000074 equ $ ; in [TRAP1848.BAS] For X = 0 To 210 ; 2 instr
Clrf _X
fr@lb4
Movlw 211
Subwf _X,W
Btfsc STATUS,0
Goto nx@lb5
F1_000075 equ $ ; in [TRAP1848.BAS] Next X ; 5 instr
Incf _X,F
Btfss STATUS,2
Goto fr@lb4
nx@lb5
FORNEXTNEG
F1_000078 equ $ ; in [TRAP1848.BAS] For X = 210 To 0 Step -1
Movlw 210
Movwf _X
fr@lb6
F1_000079 equ $ ; in [TRAP1848.BAS] Next X
Movlw 1
Subwf _X,F
Btfsc STATUS,0
Goto fr@lb6
nx@lb7
DECREMENTAL
F1_000082 equ $ ; in [TRAP1848.BAS] X = 210
Movlw 210
Movwf _X
INSTRU
F1_000084 equ $ ; in [TRAP1848.BAS] Dec X
Decf _X,F
F1_000085 equ $ ; in [TRAP1848.BAS] If X > 0 Then GoTo Instru
Movf _X,F
Btfsc STATUS,2
Goto bc@LL8
Goto INSTRU
bc@LL8
F1_EOF equ $ ; TRAP1848.BAS
LIST
END