Same thing...
Here it's complite code
	Code:
	DEFINE        OSC 4         ' We're using a 10MHz oscillator
Define        INTHAND myint    ' Define interrupt handler
DEFINE HSER_BAUD 2400
        OSCCON=%01010110
        OSCCON2.2=0
        OSCTUNE.7=1
        OSCTUNE.6=1
        REFCON0=0
        REFCON1=0
        ADCON1=0
        ADCON2=0
        ANSEL =0           
        ANSELH=0
        CM1CON0=0
        CM2CON0=0
        SRCON0=0
        SRCON1=0
        WPUA=0
        WPUB=0
        WDTCON=0   
        SLRCON=0           
        RCON.7=0
        RCON.6=0   
        UCON=0  
        IOCA=0
        IOCB=0
        T0CON=0
        T1CON=%00001111  
        T2CON=0
        T3CON=%00000110
        INTCON=192  
        INTCON2=0  
        INTCON3=0 
        PIR1=0
        PIR2=0
        PIE1=1
        PIE2=2
        IPR1=0
        IPR2=0
        porta=0
        portb=0
        portc=0
        trisa=255
        trisb=255
        trisc=255
'RTC_________________________
Seconds        VAR BYTE bankA  ' variables within myint must be in bank 0.
Minutes        VAR Byte bankA       ' Elapsed minutes
Hours          var byte bankA
Day            var byte bankA     
Month          var byte bankA
Year           var byte bankA
Ticks          var byte bankA
DMonth         var byte bankA
'IO________________
SYMBOL Ul1  =PORTB.5
SYMBOL Ul2  =PORTB.6
SYMBOL Pull =PORTC.4
SYMBOL UWp  =PORTC.3
'TRIS______________
INPUT  Ul1
INPUT  Ul2
OUTPUT Pull
INPUT  uwp
'Brojaci___________
Brojac  VAR LONG[3] bankA
PomBroj VAR WORD[2] bankA
Mtp1    VAR BYTE[2] bankA
Mtp2    VAR BYTE[2] bankA
Add     VAR BYTE[2] bankA
Xn      VAR BYTE    bankA
Xs      VAR BYTE    bankA
Wp      VAR BIT     bankA
Trf     var byte    bankA
    year=0
    month=0
    day=0
    hours = 4
    minutes = 0       ' Pre Set time here then add seconds to clock using button
    seconds = 0
    ticks=0 
    PomBroj[0]=0
    PomBroj[1]=0
    Brojac[0]=0
    Brojac[1]=0
    mtp1[0]=1
    mtp1[1]=1
    mtp2[0]=1
    mtp2[1]=1
    add[0]=1
    add[1]=1
    Trf=0
   GoTo mainloop         
                       
@myint 
If PIR1.0 =1 then               
   TMR1H=252
@  INCF _Ticks,F           
   if ticks=32 then 
@     INCF _Seconds,F  
@     CLRF _Ticks
      if seconds > 59 then
@        CLRF _Seconds   
@        INCF _Minutes,F
         if minutes > 59 then
@          CLRF _Minutes
@          INCF _Hours,F
           if hours > 23 then 
@             CLRF _Hours
@             INCF _Day,F
              If month=2 then
                 If year//4<>0 then
                    DMonth=29
                 else
                    DMonth=28
                 endif
              else
              Dmonth=30+month.0 
              endif   
              If day>Dmonth then
@                CLRF _Day
@                INCF _Month,F
                 If month>12 then
@                   CLRF _Month
@                   INCF _Year,F
                    if year>99 then year=0
                 endif
              endif
           endif
         endif
    endif 
   endif
   Pull=1
   TMR3H=255
   TMR3L=207
   T3CON=%00000111
@  CLRF PIR1
endif
if PIR2.1=1 then
   T3CON=%00000110
   Wp= Wp & uwp
   Xn.0=ul1
   Xn.1=ul2
   Pull=0
    
   IF (Xn.0<Xs.0 AND Trf=0) OR  (Xn.0<Xs.0 AND Xn.1=1 AND Trf=1) THEN
@     INCF _PomBroj,F 'PomBroj[0] = PomBroj[0] + 1 
      IF PomBroj[0] = Mtp2[0] OR (PomBroj=256 AND Mtp2[0]=0)THEN
       Brojac[0]=Brojac[0] + Add[0]
@      CLRF _PomBroj'PomBroj[0]=0
      ENDIF
   ENDIF
    
   IF (Xn.1<Xs.1 AND Trf=0) OR (Xn.0<Xs.0 AND Trf=1 AND Xn.1=0) THEN
      PomBroj[1] = PomBroj[1] + 1  '  @     INCF _PomBroj+1,F '
      IF PomBroj[1] = Mtp2[1] OR (PomBroj[1]=256 AND Mtp2[1]=0)THEN
       Brojac[1]=Brojac[1]+Add[1]
       @ CHK?RP _PomBroj
@      CLRF _PomBroj+1'PomBroj[1]=0'  
      ENDIF
   ENDIF
   Xs=Xn
@  CLRF PIR2
endif 
@ retfie  FAST     
mainloop:
if ticks = 0 then
 trisb.7=0      
 hserout ["B1: ",dec9 brojac[0]," B2: ",dec9 brojac[1],13,10]'["Time: ",DEC hours, ":", DEC2 minutes, ":", DEC2 seconds,13,10]
endif
GoTo mainloop       
End
 If i don't use PBP for clearing and increment variable here
	Code:
	   IF (Xn.1<Xs.1 AND Trf=0) OR (Xn.0<Xs.0 AND Trf=1 AND Xn.1=0) THEN
      PomBroj[1] = PomBroj[1] + 1  '  @     INCF _PomBroj+1,F '
      IF PomBroj[1] = Mtp2[1] OR (PomBroj[1]=256 AND Mtp2[1]=0)THEN
       Brojac[1]=Brojac[1]+Add[1]
       @ CHK?RP _PomBroj
@      CLRF _PomBroj+1'PomBroj[1]=0'  
      ENDIF
   ENDIF
 Counter(Brojac) Is incremented only on first falling edge. If I use PBP, everything work fine, but code is larger for 6 bytes. I need 4 counter. Becouse device have cr3203 batery, I'm trying to make smallest possible code. Maybe I can save on space by removing or's from IF's.
				
			
Bookmarks