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.