#define ogranicenje 39 //sa ukljucenim prescalerom od 256 to je oko 10ms unsigned char vrednost_tajmera,brojac; void interrupt(void) { //prekidna rutina pocinje if(INTCON.T0IF){ //obradjuje tajmerski interapt INTCON.T0IF = 0; TMR0=ogranicenje; //upisuje vrednost 39 brojac++; } else if(INTCON.INTF){ //obradjuje RB0/INT interapt INTCON.INTF=0; //resetuje vanjski interapt RB0/INT vrednost_tajmera=TMR0; //ocitava tajmer TMR0=0; //brise tajmer PORTB.F2 = 1; } } //zavrsava rutina za prekid void main (void){ vrednost_tajmera=ogranicenje; brojac=0; TMR0=ogranicenje; PORTB=0b00000000; TRISB = 0b00000001; //RB0 je ulaz ostali pinovi RB1...RB7 izlazi OPTION_REG=0b11000111; //prescaler je 256,RB0/INT generise prekid na uzlaznu ivicu INTCON = 0b10110000; // ukljucen vanjski interapt RB0/INT, TMR0 interapt... while(1){ if(vrednost_tajmera