timer

Başlatan seco06, 09 Haziran 2011, 00:59:14

seco06

#include <pic.h>
__CONFIG(PROTECT & CPD & INTIO & MCLRDIS & WDTDIS & LVPDIS & PWRTEN & BOREN );
unsigned char SAYAC = 0, SN = 0, DK = 0, ZAMAN=0;
void main(void){
TRISA = 0b00000001;
TRISB = 0b00000001// RB0 giriş olarak ayarlandı.
PORTA = 0b00000000;
PORTB = 0b00000000;
CMCON = 0x07;    // PORTA  analog pinlerini kapatır.
TMR0=0;
RBPU = 0;   // PullUp Aktif
    T0SE = 0;   // DüĢen kenar tetikleme
    T0CS = 0;   // Harici osilatör
    PSA = 0;    // Prescaler TMR0 için
    PS0 = 1;    // 1:64 bölüm değeri
    PS1 = 0
    PS2 = 1;
T0IF = 0;   // interrupt flagini sıfırla
T0IE = 1;   // TMR0 interuprunu devreye sok.
INTF = 0; // interrupt flagini sıfırla
INTE = 1; // RB0 interuprunu devreye sok.
GIE  = 1; // Acık olan bütün interupları devreye sok.
while (1){
} }
static void interrupt KESME (void)         
{
   if(INTF) {            // Gelen kesme RB0 kesmesi mi ?
    RB2=~RB2;
    ZAMAN=~ZAMAN;
    INTF = 0;         // clear the interrupt
    PORTB=PORTB;
   }
   if(T0IF&ZAMAN) {            // Gelen kesme Timer0 kesmesi mi ?
if (DK==2)
   RB3=1 , RB7=1 , SAYAC=0;
SAYAC++;
if (SAYAC==61){
SAYAC=0, SN++;
if (SN==60) {
SN=0, DK++;
if (DK==60){
DK=0;
}
}
}
if (SAYAC<30)
RB3=1;
else
RB3=0;
T0IF = 0;        // clear the interrupt
   }
}


Burada main e nasıl birşey yazmalıyımki ; tuşu bıraktığımda timer sıfırlasın basılı kaldığında saymaya başlasın. yani bir nevi zaman rölesi.