STM8 External İnterrupt Sorusu

Başlatan MrDarK, 14 Mart 2014, 16:46:01

MrDarK

Merhaba arkadaşlar ;

Basit bir sorum olacak arm'lere yeni başladım. Cosmic Compiler kullanıyorum. External interrupt uygulaması yaptım fakat kafama takılan bir kısım söz konusu oldu. Sormak istedim.

GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_In_FL_IT);           // PORTC'nin 1.pinini Giriş yap Interrupt'ını aktif et
	
	EXTI_SetPinSensitivity(GPIO_Pin_1, EXTI_Trigger_Falling);      // GPIO_Pin_1 i düşen kenar tetiklemesi ile kur


Kafama takılan soru şu ; Şimdi ben C1'in ext interrupt modunu aktif ettim okey fakat Altta belirttiğim Sensitivity kısmında sadece pin_1 yazmış oldum. Bu otomatik olarak PortA PortB PortD'deki herhangi bir 1 numaralı pini yine yukarıdaki tanımlama gibi ext int kursam hepsi de düşen kenar tetiklemesi şeklinde mi çalışacak ?

Bunları ayrı ayrı seçemez miyim ?

Ayrıca Örneğin A portunun 1 numaralı pinini ext int yaptım O da mı interrupt dosyası içinde C1'in interrupt dosyası içine mi düşürecek Program Counter'ı ?
Cevap evet ise ileride kuracağım tüm portların 1 numaralı pinlerinin hepsi aynı interrupt içine mi bağlandı ?

Sorum bu kadar cevaplarınız için teşekkür ederim.
Picproje Eğitim Gönüllüleri ~ MrDarK

JKramer

Öncelikle STM8 ARM değil. Bir de sizinki L serisi sanırım (sorduğunuz kısım S'de farklı), bu yüzden kabaca bakıp cevap yazıyorum.

EXTI_SetPinSensitivity ile adı üzerinde, tüm portların yazdığınız pin'leri için ayar yapıyorsunuz (EXTI_CR1 ve EXTI_CR2). Sadece B ve D port'ları için ayrıca ayar yapabilirsiniz (EXTI_CR3). Dediğiniz şekilde her pin için ayrı ayrı sensitivity olmuyor yani.

stm8l10x_it.c dosyasına bakarsanız EXTI pin'lerin bölümlerini görebilirsiniz. Atıyorum hem A1 hem de B1 için EXTI ayarladıysanız interrupt altında hangi port olduğunu (a ya da b) test etmeniz gerekiyor.

Akşam vakti yanlış bir şey yazdıysam kusura bakmayın.