kesme

Başlatan keen75, 06 Aralık 2007, 22:53:40

keen75

Arkadaşlar her bir saatte bir kesme nasıl yapabılırim.Amacım her bır saatte eepromdakı bılgıyi 1 artırmak yardımcı olursanız sevınırim..

Erol YILMAZ

Saatte 1 değil de,
Daha küçük zaman dilimlerinde yapılan kesmenin içinde değişkeni birer birer arttırıp, değişken 1 saatin dolduğunu işaret ettiğinde yapmak istediğin şeyi yapabilirsin.

mikroserdar

//4 MHZ kristal osilatör kullanıldığını varsayarsak
// 1usn komut işleme hızı
// timer0 kesme süresi yani secon değişkeninin her artımında kesme olur
// timer0 kesmesi=256X1 usn(komut işleme hızı) x 256(presclear oranı)
//timer0 kesme süresi=65,536msn


//seconds değişkenin 16 bit olarak tanımla
// yani int16 seconds



void CPU_SETUP()

{

 setup_timer_0(rtcc_internal | rtcc_div_1);
 enable_interrupts(int_timer0);
 enable_interrupts(global);
 set_timer0(0);

}



#int_timer0                      
void timer0_isr()
{
 seconds++;
if(seconds==54931)
{
Buraya kendi komutunu yaz
}
}
mikrodentleyici yaşam biçimidir.

mikroserdar

//4 MHZ kristal osilatör kullanıldığını varsayarsak
// 1usn komut işleme hızı
// timer0 kesme süresi yani secon değişkeninin her artımında kesme olur
// timer0 kesmesi=256X1 usn(komut işleme hızı) x 256(presclear oranı)
//timer0 kesme süresi=65,536msn


//seconds değişkenin 16 bit olarak tanımla
// yani int16 seconds



void CPU_SETUP()

{

 setup_timer_0(rtcc_internal | rtcc_div_1);
 enable_interrupts(int_timer0);
 enable_interrupts(global);
 set_timer0(0);

}



#int_timer0                      
void timer0_isr()
{
 seconds++;
if(seconds==54931)
{
Buraya kendi komutunu yaz
}
}
mikrodentleyici yaşam biçimidir.

mikroserdar

rtcc_div_256 olacak şekilde. o zaman 256 (presclaer) ile çarpılmış olunur kesmede.

rtcc_div_1 değil. Burda ise 1 ile çarpılmış olunur
mikrodentleyici yaşam biçimidir.

keen75

OK ANLADIM SAOL UN