ASM zaman gecikme fonksiyonları

Başlatan Erhan YILMAZ, 08 Nisan 2009, 14:43:44

Erhan YILMAZ

Elimde bulunan bir kaç zaman gecikme fonksiyonunu paylaşmak istedim arkdaşlar işnize yarayabilir. Kodları programa bir kez dahil edip 16-255 us ,1-255 ms veya 1-255 sn gecikme  sağlayabilrisiniz.Programlar 4 mhz frekanslı picler içindir. Programları kullanmak için W registerine gecikme değerini yükleyip ilgili programı çağırmanız yeterli yüksek seviyeli programlama dilleride böyle hazır fonksiyonlar kullanıyor.Fonksiyonu kullanırken fonksiyonun kullandığı ilgili değişkenleri programda tanıtmayı unutmayın
ör:
movlw .100
call   delay_ms

Zaman_gecikme

;-------------------------------------------------------------------
; 1-255 sn arasında gecikme sağlayan alt program.
;-------------------------------------------------------------------
delay_s
	movwf	delay_s_data
delay_s_j0:
	movlw	.250			;4 * 250 = 1000 ms bekle,
	call	delay_ms		;her çevrim 1 sn.
	movlw	.250
	call	delay_ms
	movlw	.250					
	call	delay_ms
	movlw	.250
	call	delay_ms
	decfsz	delay_s_data
	goto	delay_s_j0
	return

;-------------------------------------------------------------------
; 1-255 ms arasında gecikme sağlayan alt program.
;-------------------------------------------------------------------
delay_ms
	movwf	delay_data
delay_ms_j0
	movlw	.142
	movwf	delay_data+1
	nop
	nop
delay_ms_j1
	nop
	nop
	nop
	nop
	decfsz	delay_data+1, F
	goto	delay_ms_j1
	nop
	decfsz	delay_data, F
	goto	delay_ms_j0
	nop
	return
;-------------------------------------------------------------------
; 16-255 µs gecikme sağlayan alt program.
;-------------------------------------------------------------------
delay_us
	movwf	delay_data
	rrf	delay_data, F
	rrf	delay_data, F
	movlw	.63
	andwf	delay_data, F
	movlw	.3
	subwf	delay_data, F
	nop
	decfsz	delay_data, F
	goto	$ - 2
	nop
	return

ylmz

Bende tam bunu arıyordum yenı gördüm teşekkürler.
Regülatör Dns Trafo | Regülatör | Redresör | Ups

XX_CİHAN_XX

Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.