TI (Texas Instruments) LaunchPad ile MSP430 Programlama – INTERRUPT

TI (Texas Instruments) LaunchPad ile MSP430 Programlama – INTERRUPT

Merhaba, bu serimizin bu yazısında çevre birimlerinden interrupt’ın (Kesme) ne olduğunu anlatıp CSS programı ile örnek uygulama yazacağız.

Bu serimizde MSP340 mikrodenetleyicisini programlayarak çevre birimlerini öğreniyoruz. Önceki yazılara göz atmak isterseniz linklere tıklayıp okuyabilirsiniz.

Interrupt Nedir?

Interrupt’ın türkçe karşılığı kesmedir. Adından da anlaşıldığı gibi kesme işlemlerini gerçekleştirdiğimiz çevre birimidir. MSP430 gibi mikrodenetleyicilerde  interrupt önemli rol oynar.  Hızlı yanıt, ölçülenebilirlik ve nadir olayların algılanmasında kullanılır. Gömülü programlamada genellikle interrupt kodun talimatlarının belirlendiği sırayla devam ederken sapmasına neden olan tetikleyicilerdir. Burada interrupt’a girme nedeni dahili değişkene bağlı olabilir, harici bir bağlantıyla olabilir. Bu sizin projenizin algoritmasına bağlı olarak değişir.  Bu olayı daha iyi anlayabilmek adına şöyle düşünelim; evde ders çalışırken kapı çalıyor ve çalışmamızı bırakıp kapıyı açmaya gidiyoruz. Daha sonra çalışmaya kaldığımız yerden devam ediyoruz. Interrupt olayını da buna benzetebiliriz. Kapı çalınmasıyla işimiz sapmaya uğruyor. Biz işimizi bırakıp kapıyı açmaya gidiyoruz daha sonra kaldığımız yerden devam ediyoruz.

MSP430’da Interrupt

Kullandığımız bütün mikrodenetleyicileri programlarken üretici firmalarının yayınladığı  teknik dokümanlardan yararlanıp oradaki bilgilere göre kodumuzu yazıyoruz.  Bizim kullandığımız MSP430G2X53 mikrodenetleyici ailesi için yayınlanan datasheet ve user guide dokümanlarından yararlanacağız.  MSP430’da interrupt kullanmak mikrodenetleyicimizin daha hızlı yanıt vermesini sağlar ve CPU’nun işlemeye daha fazla zaman ayırmasının yanı sıra düşük güçten yararlanmasına olarak sağlar. MSP430’da interrupt kullanarak bir butona basıldığını veya bir sensörden veri geldiğini, osilatör hatalarını ve diğer durumların algılanmasını sağlar.

Kullandığımız MSP430 mikrodenetleyicisinin üç çeşit interrupt türü vardır.

⤷ SYSTEM RESET

Bu interrupt tetiklendiğinde sistem sıfırlanır.

⤷(NON)-MASKABLE NMI

Bu kesintiler maskelenemez. Bu interrupt kritik durumu gösterir bunlar osilatör arızaları ve flaş erişim ihlali gibi arıza işleyicileridir.

⤷MASKABLE

MSP430 interrupt türleri arasında en çok kullanılan interrupt türüdür.  WDT (Watchdog Timer) dahil olmak üzere interrupt özelliğine sahip çevre birimleri neden olur.

Interrupt Öncelikleri

Projemizdeki algoritmada birden fazla interrupt durumu olması mümkündür. Bu durumda mikrodenetleyicimizin interrupt öncelikleri vardır. MSP340 için bunlar sabittir. Bunun için user guide dokümanında öncelik tablosu yer almaktadır. Tablo büyük olduğu için burada tekrarlamayacağım. Siz kendi projenizde algoritmanıza göre uygun olarak kodunuzu yazabilirsiniz.

LaunchPad Interrupt Uygulaması

Bu yazımızda interrupt uygulaması olarak geliştirmede kartımızdaki buton ve ledleri kullanacağız. Kartımızdaki butona basılınca interrupt’a girip kırmızı led yanacaktır.

Karttaki P1.3 numaralı GPIO pinine kullanıcı butonu bağlıdır. Biz de bu pini interrupt enable olarak yapılandıracağız. Karttaki P1.6 numaralı GPIO pinlerine bağlı kırmızı led bağlıdır.  Bizde bu led pinini output olarak yapılandıracağız.  Bu yapılandırmaları user guide tablosuna göre yapıyoruz.

Bu uygulamamızda butona basınca mikrodenetleyicimiz interrupt’a girecek ve karttaki ledimiz yanacaktır.

YouTube video

Interrupt yapısını anlayıp uygulamamızı yapmış olduk. Serinin bir sonraki yazısında ADC yapısını öğreneceğiz.

Sormak istediğiniz bir şey olursa bana yazmakta çekinmeyin.  Kendinize iyi bakın. 🙂

Zeynep Dicle
yazı

Merhaba! Ben Zeynep Dicle. Elektrik Elektronik mühendisliği mezunu, gömülü yazılım sevdalısı bir geliştiriciyim. Gömülü yazılım alanında blog yazıları paylaşıyorum. ^_^

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir