; Főprogramban definiálni a változókat: T1,T2,T3,T4
; A hívható időzítések:
; S_KESLELTET_X100MS = X * 100 ms. X legyen a W-ben
; S_KESLELTET_100MS = 100 ms
; S_KESLELTET_X10MS = X * 10 ms. X legyen a W-ben
; S_KESLELTET_10MS = 10 ms

;----------------------------------------------------------------------------------------
S_KESLELTET_X100MS	; Hívásakor a W-be kell tölteni a T4 kezdőértékét.
					; Ez határozza meg, hogy hányszor 0,1 másodperc a várakozás
	MOVWF	T4
UJRA	
	CALL	S_KESLELTET_100MS
	DECFSZ	T4,F
	GOTO	UJRA
	RETURN
;----------------------------------------------------------------------------------------
S_KESLELTET_X10MS	; Hívásakor a W-be kell tölteni a T4 kezdőértékét.
					; Ez határozza meg, hogy hányszor 0,01 másodperc a várakozás
	MOVWF	T4
UJRA2	
	CALL	S_KESLELTET_10MS
	DECFSZ	T4,F
	GOTO	UJRA2
	RETURN
;----------------------------------------------------------------------------------------
S_KESLELTET_100MS	;5000000 ciklus= 1s clock= 20MHz T1=0x2D, T2=0xE7, T3=0x0B
					;2500000 ciklus= 0,5s clock= 20MHz T1=0x16, T2=0x74, T3=0x06
					;---->500000 ciklus= 0,1s clock= 20MHz T1=0x03, T2=0x18, T3=0x02
					;400000 ciklus= 0,08s clock= 20MHz T1=0x36, T2=0xE0, T3=0x01
					;10000000 ciklus= 2s clock= 20MHz T1=0x5A, T2=0xCD, T3=0x16
					;50000 ciklus= 0,01s clock= 20MHz T1=0x0F T2=28
					; forrás: piclist.com/techref/piclist/codegen/delay.htm
					
					; 0,1 másodpercre beállítva
	MOVLW	0x03
	MOVWF	T1
	MOVLW	0x18
	MOVWF	T2
	MOVLW	0x02
	MOVWF	T3
PIHEN1
	DECFSZ	T1,F
	GOTO	$+2		;előre ugrás a következő GOTO-ra
	DECFSZ	T2,F
	GOTO	$+2
	DECFSZ	T3,F
	GOTO	PIHEN1
	RETURN
;----------------------------------------------------------------------------------------
S_KESLELTET_10MS		; 0,01 másodperc
	MOVLW	0X0F
	MOVWF	T1
	MOVLW	0X28
	MOVWF	T2
DELAY_0
	DECFSZ	T1, F
	GOTO	$+2
	DECFSZ	T2, F
	GOTO	DELAY_0
	NOP
	NOP
	RETURN
;----------------------------------------------------------------------------------------