Stm32 · Kasım 18, 2012 0

External Interrupt on STM32VL Discovery

-Genelde Harici kesme kullanarak kesme işlemine başlarım. Nedense hocalar hep Timer la başlarlar.Çalışma sırası EXTI yani external interrupt a geldiğinde biraz tırmaladım. sebebini kodlarla beraber yazarım. STM32VLDISCOVERY kartıyla gerçekleştireceğiz. Cortex M3 lerde interruptları yönetmek için NVIC (Nested vectored interrupt controller) adında bir yapı vardır. NVIC ile 60 adet (low ve medium seri işlemcilerde 56) interrup ı kontrol edebilirsiniz.
Bu kesmeleri ve sıralamalarını datasheet in “8.1.2 Interrupt and exception vectors” tablosunda görebilirsiniz.
Biz buarad EXTI0 kanalını kullanacağız, bunun  sebebi ise, kartımızın üzerinde bulunan iki adet butonumuz var biri RESET diğeri USER.  Adresinden şemasını inceleyecek olursak USER butonun PA0 a bağlı ve (2. sayfa) PullDown yapıldığını görüyoruz. Yani Butona bastığımızda Lojik 1 gönderiyor. Biz interrupt ımızı buna göre ayarlayacağız.

Isınma hareketlerini bitirdikten sonra maça başlayabiliriz.
ilk önce kullanacağımız kütüphanelerden misc.h ve stm32f10x_exti.h  dikkatinizi çekmiştir. exti dosyası external int için kullanılan misc ise NVIC ayarlama için kullanılan dosyalardır.

kesmenin oluşması için girişin yükselen kenar yada düşen kenar da tetiklenmesini sağlayan komut aşağıda.

denemelerimde hernekadar değiştirsemde hem yükselen hemde düşen kenarda tetikleme aldığını gözlemledim. bunu Bouncing etkisine bağladım.
Çalışmalarınızda başarılar dilerim.

Ziyaretci : 9