Solved the trigger by holding button, ingenuity works
I still can't figure out why the led does not blink while counting time at the first while wend

And I noticed the ASM SLEEP does not work, consumption is the same (0.4mA) regardless I use it or comment it out. I replaced @ sleep with ASM SLEEP ENDASM to compile with MPASM do I need to add something else?

changed code:

Code:
'****************************************************************
'*  Name    : pentax.BAS                                        *
'*  Author  : PEU based on examples from www.rentron.com        *
'*  Notice  : Copyleft (c) 2011                                 *
'*          : No Rights Reserved on derived work                *
'*  Date    : 05-ENE-11                                         *
'*  Version : 1.10                                              *
'*  Notes   : pablou at gmail dot com                           *
'****************************************************************
@ #define IRTX GPIO  ; Define port to use for IR out
@ #define PIN 2      ; Define port pin to use for IR out

' 12F683.INC at picbasic folder has this defined already for MPASM use
' __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_OFF & _CP_ON
'@ device pic12f683,INTRC_OSC_NOCLKOUT , wdt_on, mclr_off, protect_on


INCLUDE "DT_INTS-14.bas"
INCLUDE "ReEnterPBP.bas"
INCLUDE "Elapsed_INT.bas"   ; Elapsed Timer Routines  by Darrel Taylor

DEFINE OSC 4

  GPIO = 0      
  TRISIO.2 = 0              ' LED IR
  TRISIO.1 = 0              ' Red LED 
  TRISIO.5 = 1              ' Normal open pushbutton (w/ pulldown)
  CMCON0   = 7              ' Comparators disabled
  ANSEL = 0                 ' A/D disabled
'  GIE       VAR INTCON.7   ' Global interrupt enable 1=ON, 0=OFF
  GPIE      VAR INTCON.3    ' Port change interrupt enable 1=ON, 0=OFF
  GPIF      VAR INTCON.0    ' Port Change Interrupt Flag bit   

  Cycles    VAR BYTE    ' Number of carrier cycles
  ContaSec  var word    ' Seconds Counter
  TLFlag    var byte    ' Timelapse counter programmed?
  IRLED     var GPIO.2  ' alias LED IR
  LED       var GPIO.1  ' alias red LED 
  BOTON     var GPIO.5  ' pushbutton
  
  GIE = 0               ' Disable global ints
  GPIE = 1              ' Enable port change int
  IOC.5 = 0             ' Int-on-change for GPIO.5 disbled
  PAUSE 100             ' little pause to settle the processor after cold start
  

GOTO OverASM            ' jump over ASM routines

' Generate "Cycles" number of ~38.4kHz pulses   Bruce at www.rentron.com
ASM
_Pulse38
   bcf IRTX,PIN         ; 1uS, LED=on
   goto $+1             ; + 2uS = 3uS
   goto $+1             ; + 2uS = 5uS
   goto $+1             ; + 2uS = 7uS
   goto $+1             ; + 2uS = 9uS
   goto $+1             ; + 2uS = 11uS
   goto $+1             ; + 2uS = 13uS   
   bsf IRTX,PIN         ; 1uS, LED=on
   goto $+1             ; + 2uS = 3uS
   goto $+1             ; + 2uS = 5uS
   goto $+1             ; + 2uS = 7uS
   goto $+1             ; + 2uS = 9uS
   nop                  ; + 1uS = 10uS
   decfsz _Cycles,f     ; + 1uS = 11S    
   goto _Pulse38        ; + 2uS = 13uS
   return               ; Return to caller    
ENDASM

ASM
INT_LIST  macro         ; IntSource,        Label,  Type, ResetFlag?
        INT_Handler   TMR1_INT,  _ClockCount,   PBP,  yes
    endm
    INT_CREATE          ; Creates the interrupt processor

    INT_ENABLE  TMR1_INT ; Enable Timer 1 Interrupts  
ENDASM

OverASM:                ' END of ASM routines

contasec=0
tlflag=0


                        ' New timer
GOSUB ResetTime         ' Reset Time to  0d-00:00:00.00
GOSUB StartTimer        ' Start the Elapsed Timer
                        
while boton = 1         ' Loops while the button is pressed
        if SecondsChanged = 1 then 'if the seconds changed flash the red led
            high led
            pause 50      'should blink once a second but it doesn't
            low led
            SecondsChanged = 0      ' set flag back to 0
        endif
        tlflag=1        ' This flags lets me know if the timer was used
wend

contasec = Seconds + (Minutes * 60) ' Total time elapsed
gosub StopTimer

'Loop del TimeLapse      
if tlflag = 1 then      ' if the timer was used continue

    while boton = 0  
        sleep contasec  ' sleep programmed time
        gosub trigger   ' trigger 
        high led        ' red LED on
        pause 50        ' little pause
        low led         ' red LED off
    wend
    
' Timelapse ended because the button was pushed
    for contasec = 1 to 15  ' flash red LED to let the user know
        high led
        pause 100
        low led 
        pause 100
    next

endif

IOC.5 = 1               ' Int-on-change for GPIO.5 enabled
GPIO = 0   

Main:                   ' main Loop 

  ASM
    SLEEP               ; Sleep
  endasm
    
  while boton=0         ' wait for button push
  wend

  GPIF = 0              ' Clear port change interrupt flag

  while boton=1         ' shoot while pressed    
    gosub trigger       ' trigger
    high led            ' blink red LED
    pause 50
    low led              
  wend
  
GOTO Main
  
Trigger:                ' PENTAX pulse train
  Cycles = 255      
  CALL Pulse38
  Cycles = 239      
  CALL Pulse38
  pauseus 3000
  cycles = 38
  CALL Pulse38
  pauseus 1000
  cycles = 38
  CALL Pulse38
  pauseus 1000
  cycles = 38
  CALL Pulse38
  pauseus 1000
  cycles = 38
  CALL Pulse38
  pauseus 1000
  cycles = 38
  CALL Pulse38
  pauseus 1000
  cycles = 38
  CALL Pulse38
  pauseus 1000
  cycles = 38
  CALL Pulse38
  pauseus 5000          ' end PENTAX pulse train
return
  
  
  END                   ' Fin   :)