4 ve 20 Mhz de çalışan pic için 10usn gecikme nasıl yap

Başlatan futureng, 05 Aralık 2008, 09:19:09

futureng

Merhaba.
4 ve 20 Mhz de çalışan pic için sağlıklı bir 10usn gecikme sağlayan bu iki frekans için assembler program parçaları nasıl olmalıdır?
GimpTR.COM: Hayal Gücünüzün Gerçek Dünyadaki Görünüşü  http://www.gimptr.com

OG

Kod için yerin varsa,



GoTo $+1  ; 4MHz için 2usn, 20MHz için 0,4usn
nop  ; 4MHz için 1usn, 20MHz için 0,2usn


Bunlardan sıraladığın miktarda gecikme sağlarsın.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

futureng

4Mhz de çalışan pic için şu şekilde bir asembler procdure buldum.
diğer "nop" olmadan diğer yöntemin mantığı nedir?

procedure delay_10usn ( byte in x ) is

 assembler
  local T1
 t1:
   nop
	 nop
	 nop
	 nop
	 nop
	 nop
	 nop
	 decfsz x,f
	 goto t1
 end assembler
 
end procedure
GimpTR.COM: Hayal Gücünüzün Gerçek Dünyadaki Görünüşü  http://www.gimptr.com

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

futureng

GimpTR.COM: Hayal Gücünüzün Gerçek Dünyadaki Görünüşü  http://www.gimptr.com

XX_CİHAN_XX

4mhz __10uS__
goto $+1
 goto $+1
 goto $+1
 goto $+1
 goto $+1


veya

4mhz __10uS__
movlw 0x03
 movwf sayac
 decfsz sayac,F
 goto   $-1


20mhz __10uS__
movlw 0x10
 movwf sayac
 decfsz sayac,F
 goto   $-1
 nop

Derleyicin mplab değilse $-1 ve $+1 ifadelerini kabul etmeyebilir.
Bunun yerine etiket ismi verip oraya goto ile gidersen sorun düzelir.

Kolay gelsin.
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.

3adam

http://robot.ee.hacettepe.edu.tr/default.asp?Islem=Projeler

hacettepe robot topluluğuna teşekkürler linkteki program direk gecikme kodlarını veriyor