Hi-Tech kesme

Başlatan salih18200, 22 Haziran 2007, 18:01:41

salih18200

Arkadaşlar hi-tech c'de benim için bi kaç tane kesme örneği verebilirmisiniz.Timer kesmesi,harici kesme vb. Bu konularda henüz yeniyim. :lol:

findux

salih kardeş bende timer haric diyer kesmeleri hic c hi-tide de kullanmadım ama timer örneği yazdım.umarım işine yarar.kesme her 50 ms de bir calışıyor. içerisindeki sayac değişkeni sayesinde 2 kere calıştırılıyor.tabi 100ms elde etmiş oluyoruz.hiz değişkeniylede matamatiksel formülle bulunup PORTB ye gönderiliyor.(doğan ibrahim'in pic c motor kontrol projeleri kitabından faydanılmıştır.)
timer sayısı değiştirilerek farklı kesmeler elde edilebilinir.diyer kesmelerede bir bakiyim şu ara banada lazım oldu.bilen arkadas varsa yazarsa bi zahmet çok iyi olur kanımca :).

/* timer kesmesi*/
void interrupt motor_hizi(void)
{
   sayac++;
   if(sayac==2)
   {
     hiz=sayim/0.1;
     PORTB=hiz;
   }
   T0IF=0;
}


/*ana program*/
main(void)
{
    TRISB=0;
    TRISA=1;  //RA0 giriş
 
    T0CS=0;
    PSA=0;
    PS0=1;     //önbölücü=256(50ms)
    PS1=1;
    PS2=1;
    TMR0=61;    //timer sayısı
    T0IE=1;       //timer kesmelerini aktifle
    T0IF=0;
    ei();           //kesmeleri aktifle

    for(;;)     //sonsuz döngü
    {
       while(RA0==0);
       sayim++;
       while(RA0==1);
    }
}