ON INTERRUPT – PBP Türkçe

ON INTERRUPT Tanıtım ResimON INTERRUPT GOTO Label

ON INTERRUPT komutu kesmelerin bir PICBasic altprogramı gibi değerlendirilmesini sağlar.

Kesmeleri PicBasic Pro kullanarak işlemenin iki yolu vardır. İlk yol kesmeleri assembly dili ile program yazarak işlemektir. Bu yol ile kesmeler miminumum gecikme yaşanarak işlenebilir. İkinci yol ise PicBasic Pro kesme işleyicisi (“interrupt handler”) kullanmaktır. Bu sayede kesme altprogramları RESUME ile biten sıradan PicBasic Pro altprogramları gibi yazılabilir.

Bir kesme meydana geldiğinde cihaz tarafından bu olay işaretlenir. O an işlenmekte olan PICBASIC PRO ifadeleri biter bitmez program BASIC kesme işleyicisinin bulunduğu Label adlı etikete atlar. Kesme altprogramı tamamlandıktan sonra, program RESUME komutu ile kesmenin olduğu yere geri döner.

DISABLE ve ENABLE komutları kullanarak kesmelerin dikkate alınıp alınmayacağı belirlenebilir. DISABLE komutunun en çok kullanıldığı yer, kesme işleyicisinin hemen öncesidir. Ya da kesme işleyicisi kısım ON INTERRUPT ifadesinden önce yerleştirilir. ON INTERRUPT ifadesi ile programda ilk kez karşılaşana kadar kesmeler dikkate alınmaz.

Kesmenin oluştuğ an ile programın kesme işleyicisine gitmesi arasında gecikme yaşanabilmektedir. PBP komutları birer birer çalıştırıldığından ve aynı anda tek komut çalıştırılabildiğinden kesme oluştuğu anda çalışan komutun alacağı süreye bağlı olarak fark edilir bir gecikme oluşabilmektedir.

Program o an çalışmakta olan komutu bitirmeden, kesme gerçekleşse bile, kesme altprogramına atlamamaktadır. Eğer kesme oluştuğu anda PAUSE veya SERIN gibi komutlar çalışıyorsa, kesmenin işlenmesi oldukça gecikmeli olacaktır. Program bu geciklmeleri en aza indirecek şekilde yazılmalıdır. Örneğin uzun gecikmeler, kısa gecikme komutlarının döngüyle tekrar tekrar kullanılmasıyla sağlanabilir. Eğer kesmelerin en az gecikme ile işlenmesi isteniyorsa, assembly dili ile kesmeler değerlendirilmelidir.

Kesme için yaratılan kod kalabalığı da ayrı bir problemdir. ON INTERRUPT komutu, programdaki heri bir ifadenin sonuna kesmenin kontrolü için ekstra kod eklemektedir. DISABLE komutu ile devam eden komutlara belirtilen ekstra komutların eklenmesi iptal edilir. ENABLE komutundan sonraki komutlara ise bu ek kod yine eklenmektedir. Ek komut eklenmesi genelde problem yaratmamaktadır. Fakat düşük boyutlu program belleğine sahip cihazlara uzun kodlar yazılmasında sıkıntı yaşanabilmektedir.

Örnek

ON INTERRUPT GOTO kesme ‘ Kesme işleyicisi “kesme” etiketli kısım
INTCON = %10010000 ‘ RB0 kesmesi aktif

. . .

DISABLE ‘ Kesme işleyicisindeyken kesmeleri iptal et.
kesme: led = 1 ‘ Kesme olunca led’i yak.
RESUME ‘ Ana programa geri dön.
ENABLE ‘ Kesmeleri tekrar aktif et.

Kesmelerin tekrar kullanılana kadar ya da kalıcı olarak kapatılması isteniyorsa, ON INTERRUPT komutundan sonra aşağıdaki komut kullanılmalıdır:

INTCON = $80

Bunlara da Bakın

  • ENABLE
  • DISABLE
  • RESUME

Tüm fonksiyonların listesine buradan bakabilirsiniz.

Bu yazı, “İzoelektronik – Atölye” grubu tarafından, 90alper90 ve Hazar kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.



Bağlantılı Yazılar

Yorum yapılmamış. Yapılmış

Yazıyı paylaşın. | Yazı ile ilgili sorun bildirin.

Yorum Yapın ya da Soru Sorun

Yorum yapabilmeniz ya da soru sorabilmeniz için giriş yapmanız gerekmektedir.
Hoşgeldiniz, Ziyaretçi.Lütfen giriş yapın veya kayıt olun.
E-posta adresinize aktivasyon iletisi gelmediyse lütfen buraya tıklayın.

Arama Yap
Üye Alanı
 
 
Kayıt Ol || Aktivasyon Kodu İste
Teknik Yardım
6 tane konu henüz çözüme ulaşmamış. Belki siz yardımıcı olabilirsiniz ya da sorunlarınızı çözmenize başkaları yardım edebilir. Teknik Yardım bölümüne buradan ulaşabilirsiniz.
Destek İçin
İzoelektronik Facebook Sayfası
İzoelektronik'e Facebook sayfamıza katılarak destek olabilir, eklenecek yeni yazıları ve gelişmeleri Facebook üzerinden de takip edebilirsiniz.
Güncel Kalın

Eklenen Yazılar E-posta Adresinize Gönderilsin

Bizi RSS ile de takip edebilirsiniz.

Translate
Son Yorumlar
  • 90alper90: Merhaba Ozan Bey, Ölçümleri aldıktan sonra aynı anda göstermekte bir sıkıntı yok. Önemli olan 3 ölçümü de alabilmek. Bir önceki...
  • ozigeldi: alper teşekkür ederim bu arada ben ozan memnun oldum ben bu 3 ölçümü aynı lcd ekranda gösterebilimiyim pıc’e yeni başladım ve bu...
  • botan: meraba malzemeleri tedarik ettim motor olarak step motor aldım sizin yüklediğiniz programın aynısını yüklesem sorun yaşarmıyım acaba, yeni...
  • kuvvetkmc: Şöyle söyleyim; Anakart üzerinde ki; R1-R2-R3-R4-R4-R5-R6-R7-R8-R9- R10-R11-R12-R13-R14-R15-R16-R1 7-R18-R19 C1-C2-C3-C4 Q1;...
  • İzoelektronik: @kuvvetkmc Sorun çıkaran dirençleri daha net olarak belirtebilirseniz daha kolay yardımcı olunabilir. @botan Belirttiğiniz devreler...
drupal statistics module