TEK DÖNGÜ KULLANMAK

Başlatan Tom, 09 Mart 2006, 15:59:42

Tom

Arkadaşlar öncelikle herkese kolay gelsin.Benim bir sorom olacak.
Örneğin asm ile herhangi bir gecikme oluşturmak için alt alta DECFSZ komutunu kullanarak birden fazka döngü oluşturuyoruz.

ÖRNEĞİN;
GECIKME
   movlw   d'255'
   movwf  SAYAC1
tek_2
   movlw   d'255'
   movwf  SAYAC2
tek_1
   decfsz   SAYAC1,F
   goto     tek_1

   decfsz   SAYAC2,F
   goto     tek_2
    return
     
İşte benim sorum bu noktada başlıyor.Yukarıdaki gibi 2 döngü oluşturmak yerine  , sadece tek bir döngü ile halledemezmiyiz.
Aşağıdaki gibi,

GECIKME
    movlw   d'65025'
   movwf  SAYAC1
tek_1
   decfsz   SAYAC1,F
   goto     tek_1
   return

 Yukarıdaki kısa olan döngüyü denedim ama olmadı .Sanki SAYAC1 'e sadece d'255' yukluyomuşum gibi çalışıyor neden acaba?

zafzaf82

W register i 8 bitlik olduğu için en fazla 255 sayısını atayabilirsin oyüzden o döngü çalışmamıştır.
Mikroişlemci bi araçtır, amaç değil.....

Tom

Evet arkadaşım gerçekten dogru bir tespit bencede ondan ,ben PIC olarak 18F452 kullanıyorum.Bunu daha başka tek döngü kullanarak nasıl halledebiliriz.Çünkü ilk 1 yıl lık gecikme yapmak istiyorum

DumrulBey

Merhaba,

Aslında bu durum normal çünkü 8 bitlik işlemci için en fazla alabileceği değer 2 üzeri 8 - 1 'dir. Bundan daha büyük örneğin 16 bit işlemciler var ama senin uygulamana fazla gelebilir. Bunun yerine 1 yıllık gecikme yapabilmek için zamanlayıcı (timer) kurup istediğin zaman diliminde kesme oluşturmaya çalışabilirsin. Elindeki kaynak kitaptan TIMER (zamanlayıcı) ve INTERRUPT (kesme) konularına bakmalısın.

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

refik1

Başka yolu yok kardeş

CaFFeiNe

@Tom

bunu yapmak istemenin nedeni merakmı yoksa 2 döngü olmasının bir sakıncasımı var? yanlış anlama meraktan sordum :)

Tom

yani uzun zaman gecikmelerinde 2 döngüde yeterli olmuyor o yüzden tek döngüde işi bitirmek için.
    Bu arada 18F452 ile TMRO kullanarak gecikme yapan varmı? Örnek bir gecikme gönderen olursa bana çok ışık tutacak.

CaFFeiNe

2 de yetmiyorsa 3-5-7 olur nema problema :)