Picproje Elektronik Sitesi

DERLEYİCİLER => Hi-Tech => Konuyu başlatan: kenan_re - 20 Haziran 2013, 13:30:51

Başlık: Pic18f4550 RB0 kesmesi
Gönderen: kenan_re - 20 Haziran 2013, 13:30:51
18F ile ilgili yaptığım çalışmada dış RB0 kesmesi kullanıyorum. INTCON Aşağıdaki şekilde tanımlı
INT0IF =0x00; // RB0/INT kesme bayrağı temizleniyor
INT0IE =0x00; // RB0/INT izni KAPALI
PEIE = 0x00; // Yardımcı kesme KAPALI (INTCON,6. biti)
GIE = 0x00; // Genel kesme KAPALI    (INTCON,7. biti)


Bu kodlara rağmen  INT0IF bayrağı "1" oluyor. Başka bir kesme için(örneğin RCIF için) kesme döngüsüne gittiğimde INT0IF=1 olduğu için onun içinede giriyor.

RB0 kesmesi açık olmadığı halde bayrağın 1 olmasının sebebi nedir ?

Teşekkürler.
Başlık: Ynt: Pic18f4550 RB0 kesmesi
Gönderen: JKramer - 20 Haziran 2013, 13:49:33
Kesme bayraklarının 1 olması, ilgili kesmelerin ve/veya global kesmenin açık olmasına bağlı değildir. Katalogların "Interrupts" bölümlerinin girişinde bu uyarıyı bulabilirsiniz.
Başlık: Ynt: Pic18f4550 RB0 kesmesi
Gönderen: Tagli - 20 Haziran 2013, 14:27:38
Bu sebeple döngü içindeki karşılaştırmalarda şart ifadesi şu şekilde yazılır:

if (INT0IF == 1 && INT0IE == 1)
Başlık: Ynt: Pic18f4550 RB0 kesmesi
Gönderen: kenan_re - 20 Haziran 2013, 15:05:13
evet fonksiyonu az önce o hale getirmiştim. hiç dikkatimi çekmemişti bu durum :)