Düşen kenar tetiklemesi?

Başlatan hamzax, 31 Ocak 2011, 18:39:43

hamzax

Arkadaşlar bu pic olayına yeni başladım.Interrupt ve timer işlemlerine bakıyordum.fxDev'den indirdiğim dökümanda şu şekilde bir uygulama var.
RA0'a bir buton bağlı,PORTB'nin 0,1,2,3 pinlerine de birer led takılı.Butona 5 defa basınca Led'ler sırayla yanıyor.
#include <htc.h>
void main(void) // Ana fonksiyon alanı
{
ADCON1=0x07; // PORTA dijital yapılıyor
TRISA=0x10; // RA4 giriş yapılıyor
TRISB=0x00; // PORTB çıkış olarak ayarlanıyor
PORTA=0x00; // PORTA sıfırlanıyor
PORTB=0x00; // PORTB sıfırlanıyor
TMR0=-5; // Esasen 250 yüklenmiş oluyor
T0SE=0; // Düşen kenar tetikleme
T0CS=1; // Harici osilatör
PSA=1; // Prescaler TMR0 için
PS2=0; // 1:1 bölüm değeri
PS1=0;
PS0=0;
T0IF=0; // TMR0 kesme bayrağı temizleniyor
T0IE=1; // TMR0 kesmesine izin veriliyor
GIE=1; // Genel kesme izni veriliyor
for(;;); // İşlemci sonsuz döngüde bekletiliyor
}
static void interrupt // Kesme fonksiyonu

isim(void) // Kesme fonksiyon ismi (önemsiz)
{
char i; // Değişkenler tanımlanıyor
if(TMR0IF) // TMR0 kesmesi oluşmuş mu
{
i++; // PORTB'de gözükecek değer
if(i==16) // Değişken 16 olursa onu tekrar 0 yap
i=0;
PORTB=i; // Değişken değeri PORTB'ye yansıtılıyor
TMR0=-5; // Esasen 250 yüklenmiş oluyor
TMR0IF=0; // Tekrar dış kesme alınabilmesi için kesme bayrağı temizleniyor
}
}

Kodları simulator'le denedim kodlar çalışıyor ancak kodlarda butona "5" defa basılınca ledlerin sırayla yanmasını sağlayan kısmı bulamadım.
Bir de bu düşen kenar yükselen kenar nedir?

Açıklamalarınız için teşekkür ederim...