Etepic

Dökümanlar - Makaleler ve Projeler => PIC Basic Dersleri => Konuyu başlatan: ete - 22 Şubat 2016, 10:46:37

Başlık: Ders notlarına ilaveler -9. Kesmeler
Gönderen: ete - 22 Şubat 2016, 10:46:37
Bu derste Kesme konusu incelenmiştir.

Ete
Başlık: Ynt: Ders notlarına ilaveler -9. Kesmeler
Gönderen: samiyazgun - 18 Ocak 2020, 15:33:20
8 adet EK bilgi dosyalarınızı aldım. Teşekkürler Hocam.
Başlık: Ynt: Ders notlarına ilaveler -9. Kesmeler
Gönderen: ferruh - 21 Mayıs 2024, 13:22:41
ete hocamıza emeğinden dolayı teşekkürler..
Başlık: Ynt: Ders notlarına ilaveler -9. Kesmeler
Gönderen: gogoce - 19 Eylül 2024, 18:25:39
Hocam Selamlar. 16F1827 de portb değişim kesmesi sanırım biraz farklı IOC registerleri de işin içine giriyor sanırım. Bu konuda bir dersiniz olacak mı? Şu an portb değişim kesmesi ile ilgili bir problemim var PBP dökümanı bulamadım açıkçası
Başlık: Ynt: Ders notlarına ilaveler -9. Kesmeler
Gönderen: ete - 20 Eylül 2024, 08:29:55
Diğerlerinden farklı bir prosedürü yok ancak ilave parametreleri var.
- Öncelikle INTCON registerinden 7 nolu biti Genel Kesme açma biti olarak ve 3 nolu biti SET ediyoruz. Bu IOCIE yani Port Değişiklik Kesmesi Enable biti oluyor.
-Daha sonra hangi PORTB pinlerinin kesme yaratacağına karar verip IOCBP (Yükselen Kenarda Kesme oluşturma) registerinden bu pinlere karşılık gelen bitleri set ediyorsun. Veya Düşen kenarda kesme oluşturacak isen aynı işlemi IOCBN (Düşen Kenarda Kesme oluşturma) registerinde yapıyorsun.
Ayarlamış olduğun pinlerden birisinde değişiklik meyada geldiğinde bu sefer IOCBF yani Değişiklik kesmesi kesme bayrağı registerşne bakıp hangi bitin set edildiğine bakarak kimin kesme yarattığını anlıyorsun.
Eski işlemcilerde yalnızca 4 pin kesme yaratırken bu işlemcide giriş olarak atanmış olan bütün PORTB pinleri değişiklik kesmesi yaratabiliyor. Bunu IOCBP ve IOCBN registerlerinden görebilirsin. Bunun için data sheet'e bakman yeterli. Aslında bütün bu bilgiyi bende data sheet den okuyarak sana aktarıyorum. Hazır döküman aramak yerine direk data sheet'e baksan görecektin zaten.
Son olarak kesme oluştuktan sonra kesme bayrağının sıfırlanması işini açıklayayım. Eski işlemcilerde PortB nin veya yalnıca kesme yaratacak pinlerin durumlarının okunup bir TEMP değişkenine aktarılması bayrağın sıfırlanmasını sağlar iken bu işlemcide direk IOCBF.x yani iligli bite tekabül eden bayrak bitini sıfıra eşitlemek yeterli olmaktadır. Örneğin PORTB.7 kesme oluşturmuş ise IOCBF.7=0 (IOCBF7 biti) şeklinde sıfırlanması bayrağı silecektir.

Hepsi bu kadar.

Ete
Başlık: Ynt: Ders notlarına ilaveler -9. Kesmeler
Gönderen: gogoce - 20 Eylül 2024, 14:04:25
Alıntı yapılan: ete - 20 Eylül 2024, 08:29:55Diğerlerinden farklı bir prosedürü yok ancak ilave parametreleri var.
- Öncelikle INTCON registerinden 7 nolu biti Genel Kesme açma biti olarak ve 3 nolu biti SET ediyoruz. Bu IOCIE yani Port Değişiklik Kesmesi Enable biti oluyor.
-Daha sonra hangi PORTB pinlerinin kesme yaratacağına karar verip IOCBP (Yükselen Kenarda Kesme oluşturma) registerinden bu pinlere karşılık gelen bitleri set ediyorsun. Veya Düşen kenarda kesme oluşturacak isen aynı işlemi IOCBN (Düşen Kenarda Kesme oluşturma) registerinde yapıyorsun.
Ayarlamış olduğun pinlerden birisinde değişiklik meyada geldiğinde bu sefer IOCBF yani Değişiklik kesmesi kesme bayrağı registerşne bakıp hangi bitin set edildiğine bakarak kimin kesme yarattığını anlıyorsun.
Eski işlemcilerde yalnızca 4 pin kesme yaratırken bu işlemcide giriş olarak atanmış olan bütün PORTB pinleri değişiklik kesmesi yaratabiliyor. Bunu IOCBP ve IOCBN registerlerinden görebilirsin. Bunun için data sheet'e bakman yeterli. Aslında bütün bu bilgiyi bende data sheet den okuyarak sana aktarıyorum. Hazır döküman aramak yerine direk data sheet'e baksan görecektin zaten.
Son olarak kesme oluştuktan sonra kesme bayrağının sıfırlanması işini açıklayayım. Eski işlemcilerde PortB nin veya yalnıca kesme yaratacak pinlerin durumlarının okunup bir TEMP değişkenine aktarılması bayrağın sıfırlanmasını sağlar iken bu işlemcide direk IOCBF.x yani iligli bite tekabül eden bayrak bitini sıfıra eşitlemek yeterli olmaktadır. Örneğin PORTB.7 kesme oluşturmuş ise IOCBF.7=0 (IOCBF7 biti) şeklinde sıfırlanması bayrağı silecektir.

Hepsi bu kadar.

Ete
hocam cevap için teşekkürler. Datasheetten tam olarak anlayamadığım noktalar olmuştu. Sonra mantık yürüterek çözdüm. Sonra sizin mesajınızı gördüm . Ders notlarına eklerseniz belki diğer arkadaşlara faydası olur düşüncesindeydim.