Harici kesmeler nasıl çalışıyor?

Endorfin35+

Kayıtsız Üye
Katılım
1 Mayıs 2020
Mesajlar
4,464
Harici pin kesmesi için minik bir program rutini yazdım.

Pin tetiklendi kesme kodları çalışıyor. Sonra ana program devam ediyor.

Peki sorum şu;

Pin tetiklendi kesme kodları işlenirken pin tekrar tetiklendi.. o zaman ne oluyor. kod olduğu yerde kalıp baştanmı çalışıyor? Yoksa kesme rutini devreye girince kodlar işlenesiye kadar kesme tekrar aktif olmuyor mu? Karıştı biraz umarım anlatabilmişimdir....
 
Hangi dilde, hangi cihaz için yazdın programı? Program kesme ile başka bir fonksiyona dallanmıyor mu, normalde kesme geldiğinde kesme işlevi tamamlanır geri döner ve bu kesme programları da kısa işlevler olur. Sıralama durumunda mesela bilgisayarda klavye, timer dan sonraki ilk sırada yer alır, sıralama olan bir platform mu?
 
Kesmeye gittiğinde tekrar kesme gelmesin diye, kesme alt programında kesmeyi kapatıyorsun. Bitişinde tekrar kesme ekliyorsun. Böyle bir şey istersen yani
Böyle oluyorsa mantıklı... işimi görür gibi sanki...
Hangi dilde, hangi cihaz için yazdın programı? Program kesme ile başka bir fonksiyona dallanmıyor mu, normalde kesme geldiğinde kesme işlevi tamamlanır geri döner ve bu kesme programları da kısa işlevler olur. Sıralama durumunda mesela bilgisayarda klavye, timer dan sonraki ilk sırada yer alır, sıralama olan bir platform mu?

Arduino için yazacam. Henüz bir şey yazmadım planlıyorum. On/Off butonu nu kesmeye bağlayacam. Mcu meşgül olsa bile kesme sayesinde kapat değişkenini 1 yapacağım. Ana döngüde değişkeni 1 görürse sistem kapanışa gidecek. (burda biraz daha detay var...)

butona bastık kesme ile değişkeni aktif yaptık. kesmenin işi bitti. Arka planda başka işler dönüyor.... ama sırası gelince sistemin kapanacağını biliyoruz artık. Bu süreç hemen gerçekleşmiyor. kapanış için prosedürler var. kullanıcı kapanma gerçekleşmeden butona tekrar bastı. kapanış değişkenini pasif yaptık. kapanma iptal oldu. temel mantık böyle.

Buton arkı nedeni ile kesme üst üste tetiklenir ise naparım düşüncesine takıldım.

Neyse kodlamada görecez bakalım neler oluyor. Adam uzun tutarsa butonu ne olacak... Kesmeyi kapatsam bile kod defalarca çalışır. Adam butonu bıraktığı ana göre işlem yapmalıyım... hımmm....
 
Pin tetiklendi kesme kodları işlenirken pin tekrar tetiklendi.. o zaman ne oluyor.
Denetleyici, işlemci ye göre değişebilir.
Nested interrupt destekleniyormu gibi.
Microchip PIC ailesi, Arm CM0/3/4 de kesme içinde en başta kesme bayrağı temizlendi ise, aynı kesme yeniden gelirse kesme kodları baştan yeniden çalışır. Atmel'leri detaylı bilmiyorum ama aynıdır.

Yada bir kesme kodu çalışırken daha yüksek öncelikli bir kesme gelirse kesme bayrağına da bakılmaz. Direkt yüksek öncelikli çalışır.
Aynı öncelikte kesme gelirse bayrağa bakılır.

Kesme kodu sadece kapatma sırasında bir kez çalışacaksa kesme bayrağını sıfırlamayın olsun bitsin.
 

Forum istatistikleri

Konular
7,443
Mesajlar
125,440
Üyeler
3,025
Son üye
can.ince

Son kaynaklar

Son profil mesajları

Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Back
Top