Transcript DERS12

DERS 12
PIC 16F84 ile
KESME (INTERRUPT) KULLANIMI
İÇERİK

KESME NEDİR

KESME ÇEŞİTLERİ

INTCON SAKLAYICISI

RBO/INT KESMESİ

PORTB (RB4-RB7) LOJİK SEVİYE
DEĞİŞİKLİK KESMESİ
Ders 12, Slayt 2
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
KESME
• PIC’in bazı portlarındaki veya yapısında
bulunan bir sayıcıda belli şartların oluşması
durumunda, çalışmakta olan programın geçici
olarak kesilerek (ara verilerek) ayrı bir alt
programın işletilmesi ve bu alt programın
bitiminde de tekrar ara verilen programa
kalındığı noktadan geri dönülmesi işlemidir.
• Bunun alt program işletilmesinden farkı;
• Alt program kullanıcı tarafından istenilen
anda CALL komutu ile çağrılır
• Interrupt donanım tarafından belli şartlar
oluştuğunda başlatılır
Ders 12, Slayt 3
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
KESME İŞLEM ADIMLARI
• Bir interrupt oluştuğunda o an çalışmakta olan
komut tamamlanır
• Sonraki çalışacak komutun bulunduğu program
belleği adresi (Program Counter saklayıcısının
değeri) yığın saklayıcısına (Stack) atanır
• Programın işletilmesi standart kesme programının
başlangıç adresi olan h’04’ adresine dallanılır
(kesme alt programı işletilir)
• RETFIE komutu
sonlandırılır
ile
kseme
alt
programı
• STACK’de bulunan değer PC’ye aktarılır ve
çalışmakta olan programa kaldığı yerden devam
edilmiş olur
Ders 12, Slayt 4
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
KESME İŞLEM ADIMLARI
Kesme programının işletilmesi adımları, Mikrodenetleyiciler ve PIC Prog., sayfa 158
Ders 12, Slayt 5
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
KESME TÜRLERİ
PIC 16F84’de interrupt oluşturan 4 kaynak vardır:
1. RB0/INT ucuna gelen lojik 1 veya 0 sinyali ile
2. TMR0 sayıcısından gelen zaman aşımı ile
3. PORTB 4.-7. Bitleri lojik seviye değişikliği ile
4. Veri belleğine yazma işleminin tamamlanması ile
Ders 12, Slayt 6
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
INTERRUPT İŞLEMİNİN KONTROLÜ
• Interrupt işlemlerini düzenleyip kontrol etmek
amacıyla INTCON file register’ı kullanılır.
• Bu file register iki amaçla kullanılır:
1. Belirli tür kesme işlemlerine izin verme
2. Kontrol bayrakları (flag) sayesinde bir
kesme oluştuğunda hangi tür olduğunu
belirlemede
Ders 12, Slayt 7
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
INTCON SAKLAYICI
INTCON saklayıcı bitlerin açıklaması, Mikrodenetleyiciler ve PIC Prog., sayfa 164
Ders 12, Slayt 8
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
INTERRUPT İŞLEMİNİN KONTROLÜ
• INTCON file register’ının 7. Bit olan GIE aslında
donanım tarafından kullanılır:
• Bir kesme oluştuğunda GIE ‘0’ olur
• Bu sayede kesme alt programı çalışırken
oluşabilecek yeni bir kesme ile kesme
programının çalışması aksamaz
• RETFIE komutu ile ana programa geri
dönüldüğünde ise GIE ‘1’ yapılır
• Bu sayede de olası sonraki kesmelerin geçerli
olması (enable) sağlanır
• Dolayısıyla bu bayrağın kontorlünün
programda ele alınması gerekmez.
Ders 12, Slayt 9
alt
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RB0/INT KESMESİ
• Bu PIC’ın RB0/INT ucundan gelen lojik 0 veya 1
sinyali ile kesme oluşturması işlemidir
• Mesela şu ana kadar programlarımızda bir tuşa
basılı olduğunu anlamak için sanki ana
programda bir parçasıymış gibi sürekli olarak
bunu kontrol ettiriyorduk
• Bu kesmenin kullanımı ile ana program asıl
işlevini yaparken tuşa basıldığı bir kesme ile
haber verilir ve gerekenler ilgili alt programda
yapılabilir
Ders 12, Slayt 10
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RB0/INT KESMESİ
• RB0/INT interrupt’ı kullanabilmek için
1. RB0/INT bacağı giriş olarak programlanmalı
2. INTCON saklayıcısı içerisindeki INTE biti 1
yapılarak bu kesmeye izin verilmeli
3. Bu uçtan gelen sinyalin 01 geçişinde mi
yoksa 10 geçişinde mi kesme oluituracağı
belirlenmelidir. Bu amaçla kullanılan OPTION
saklayıcısının 6.biti (INTEDG):
• 0 = düşen kenarda kesme
• 1 = yükselen kenarda kesme oluşturur
Ders 12, Slayt 11
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RB0/INT KESMESİ ALT PROGRAMI
• Burada dikkat edilecek noktalar:
1. Programın başlangıcında INTE bitini 0 yap
2. Alt program işlemlerini gerçekleştir
3. INTF bayrağını 0 yap
4. INTE bitini 1 yap
5. RETFIE ile alt programdan dön
Ders 12, Slayt 12
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RBO/INT kesmesi için bir örnek program akış diyagramı, Mikrodenetleyiciler ve PIC Prog., sayfa 165
Ders 12, Slayt 13
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RBO/INT kesmesi için bir örnek program, Mikrodenetleyiciler ve PIC Prog., sayfa 165
Ders 12, Slayt 14
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RBO/INT kesmesi için bir örnek program, Mikrodenetleyiciler ve PIC Prog., sayfa 165
Ders 12, Slayt 15
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
PORTB (RB4-RB7) LOJİK SEVİYE
DEĞİŞİKLİK KESMESİ
• Bu PIC’in RB4-RB7 pinlerinin lojik seviyelerinde
değişiklik olması durumunda bir kesmenin
oluşması olyıdır
• Genellikle enerji kaynaklarından tasarruf etmek
için bir işlemin yapılmadığı uyku modunda
bulunan PIN’i aktif hale getirmede kullanılır
• Mesela klavyede bir tuşa basıldığında PIC bunu
bir kesme olarak algılar ve normal çalışmasına
başlar
Ders 12, Slayt 16
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
PORTB (RB4-RB7) LOJİK SEVİYE
DEĞİŞİKLİK KESMESİ
• RB4-RB7 interrupt’ı kullanabilmek için
1. RB <4:7>uçları giriş olarak programlanmalı
2. INTCON saklayıcısı içerisindeki RBIE biti 1
yapılarak bu kesmeye izin verilmelidir
Ders 12, Slayt 17
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RB4-RB7 KESMESİ ALT PROGRAMI
• Burada dikkat edilecek noktalar:
1. Programın başlangıcında RBIE bitini 0 yap
2. Alt program işlemlerini gerçekleştir
3. RBIF bayrağını 0 yap
4. RBIE bitini 1 yap
5. RETFIE ile alt programdan dön
Ders 12, Slayt 18
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
RB4-RB7 kesmesi için bir örnek program, Mikrodenetleyiciler ve PIC Prog., sayfa 170
Ders 12, Slayt 19
Dr. Emin Argun Oral, Atatürk Üniversitesi 2008
DERS 12
PIC 16F84 ile
KESME (INTERRUPT) KULLANIMI
- SON -Kaynak:
Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6