PIC24-Timer Kullanımı
|Merhaba, Microchip 16bit PIC24F serisinde Timer kullanımı aşağıdaki gibidir.
/* Aykut ULUSAN Elektronik Mühendisi IZMIR www.uicroarm.com işlemci : PIC24Fj64 Board : EXPKITS EX16L-A (PIC24F ve PIC33F geliştirme boardu) */ #include <p24Fxxxx.h> // xtal kullanacağız bu nedenle config içinde osc'yi değiştireceğiz, bu durum sadece config2 half word'u etkiler _CONFIG1(0x3F20) // JTAG, WDF, flash memory'ye yazma kullanılmayacak _CONFIG2(0x7AAE) // 10mhz xtal (HS), #define fosc (10000000)/2 #define tmr2_pr 256 #define reload (unsigned short) ((fosc/tmr2_pr)-1) #define LED1 LATBbits.LATB0 int main(void){ unsigned char c; while (OSCCONbits.COSC!=2); AD1PCFG=0xFFFF; TRISB=0xFFFE; //RB0 çıkış T2CON = 0; TMR2 = 0; PR2 = reload; // timer'ın limit değeri T2CONbits.TCKPS=3; IFS0bits.T2IF=0; T2CONbits.TON=1; while(1){ if(IFS0bits.T2IF){ IFS0bits.T2IF = 0; LED1 = !LED1; if(c<5){c++;} if((4<c)&&(c<15)){c++;PR2 = reload>>1;} // 0,5sn if((14<c)&&(c<45)){c++;PR2 = reload>>2;} // 250ms if((44<c)&&(c<100)){c++;PR2 = reload>>3;} // 125ms if(c>99){c=0;PR2 = reload;} } } return 0; }