Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Interrupt ne işe yarıyor ?

Başlatan refikos, 14 Nisan 2018, 14:57:37

refikos

arkadaşlar keilde stm32f407 mikroişlemcide kod yazıyor ,şimdi bir uygulama da void extıo_IRQhandler fonksiyonun içine
HAL_GPIO_TogglePin(GPIOD,led1_Pin|led2_Pin|led3_Pin|led4_Pin);
   HAL_Delay(1000);
yazdım ve butona basınca ledler yandı resete basınca söndü ,şimdi aynı işlemi while taşıdım ve çalıştırdığımda ledler yanıp söndü yanıp söndü hep yani extıo fonksiyonundaki gibi değildi şimdi bu basit örnekte ben ne anlamış oluyorum ,neyi anlamam lazım interupt ile ilgili olarak ?

fide

Io irq portta lojik seviye değişiminde tetiklenir. İşlemci yaptığı işi bırakıp irq rutinine gider. Ordaki kodları işletip işi bitince yarım bıraktığı işe devam eder. Veri alma, tetikleme gibi işler için vazgeçilmezdir.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

refikos

Alıntı yapılan: fide - 14 Nisan 2018, 18:08:46Io irq portta lojik seviye değişiminde tetiklenir. İşlemci yaptığı işi bırakıp irq rutinine gider. Ordaki kodları işletip işi bitince yarım bıraktığı işe devam eder. Veri alma, tetikleme gibi işler için vazgeçilmezdir.
hocam mesela verdiğim led örneği üzerinden anlatabilirmisiniz ?

fide

İşlemci normalde sonsuz döngüde çalışıyor. Sen butona basınca okuşan lojik seviye değişimi io irqyu tetikliyor. İşlemci yaptığı işi bırakıp irq handler içindeki kodları çalıştırıyor. İrq içindeki işlem bitince normal işlerine devam ediyor.
Sen kesme (irq handler) içindeki kodları main bloğuna alınca bu kodlar kesme meydana gelince değil sürekli çalışıyor. Ve yanıp sönüyor.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

M.Salim GÜLLÜCE

Her
Alıntı yapılan: fide - 17 Nisan 2018, 21:47:06İşlemci normalde sonsuz döngüde çalışıyor. Sen butona basınca okuşan lojik seviye değişimi io irqyu tetikliyor. İşlemci yaptığı işi bırakıp irq handler içindeki kodları çalıştırıyor. İrq içindeki işlem bitince normal işlerine devam ediyor.
Sen kesme (irq handler) içindeki kodları main bloğuna alınca bu kodlar kesme meydana gelince değil sürekli çalışıyor. Ve yanıp sönüyor.
Her interrut isteği satır aralarında bir defaya mahsus Parantez açıp kapatır. Parantez içine yapacağın işlem bitinde kaldığı yerden devam eder. Satır arasında nereye geldiği ise tamamen zamanlamayla ilgilidir.

Evde işin TV seyreder iken eşinin "şu büfeden bi ekmek alıver" demesi gibidir. ekmeği alıp geldiğinde seyretmeye devam edebilirsin.
Bi daha istek olmazsa TV seyretmeye devam edebiirsin. :)