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.