Interrupt Davranışı

Başlatan kimlenbu, 23 Eylül 2014, 11:09:04

kimlenbu

Selamlar,

STM32F4 ile internete veri gönderiyorum, bazen bağlantı kopuyor ve bağlantıyı tekrar yapıyorum, bağlantıyı yaparken gprs modülle iletişim kurmak ve AT cevaplarının gelmesini beklemek gerekiyor. Bu esnada bağlantı fonksiyonu çalıştığı için dokunmatik ekran tepki vermiyor.

Bunun için dokunmatik ekranın IRQ ucunu (ekrana dokunulduğunda high olan uç) external interrupt olarak tanımladım. Şimdi diyelim ki bağlantı fonksiyonu çalışıyor, bu esnada ekrana dokundum, harici kesmeye girdik, ekran kontrol fonksiyonu çalıştı, dokunduğum bölgeye göre bir başka fonksiyona dallandı. Bu esnada gprs modülden AT komut cevapları geliyor, bağlantı fonksiyonunda gprs modülden gelen verileri kaçırma ihtimalim var mı ? AT komut cevapları da seri porttan geliyor ve o da usart kesmesini tetikliyor.

İşin içinden çıkamadım. RTOS kullanmış olsam bunlarla uğraşmak zorunda kalır mıydım ? Daha önce hiç rtos kullanmadım, sadece yüzeysel bilgim var.

djmalan

Konuya Vakıf olmamakla beraber,genel anlamda bir fikir vereyim;
Usart kesmesini iptal edip belirli bir zaman aralığını geçirmeden  kontrol edebilirsin.Mesela sürekli tazelenen bir timer interrupt ın varsa onun içinde kontrol edebilirsin.

kimlenbu

systick calışıyor ve belli counterları arttırıp azaltarak kontroller yapıyor zaten ama bu işi de timera koyarsam işler hepten kontrolümden çıkacak. şimdilik yukarıda anlattığım gibi çalışıyor teste bıraktım, çakılmazsa bu şekilde bırakmayı düşünüyorum.