Quote Originally Posted by richard View Post
...PIE4.0 = 1 ' Restarts Timer1 no it dosent...
Now I'm confused. I thought you said I had to handle it?

Quote Originally Posted by richard View Post
... dt ints will not enable intcon PEIE you need to

This runs 50msec non-stop:

Code:
#CONFIG
    __config _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT32 & _CLKOUTEN_OFF & _CSWEN_OFF & _FCMEN_ON
    __config _CONFIG2, _MCLRE_ON & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_ON & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_ON & _DEBUG_OFF
    __config _CONFIG3, _WDTCPS_WDTCPS_11 & _WDTE_OFF & _WDTCWS_WDTCWS_7 & _WDTCCS_LFINTOSC
    __config _CONFIG4, _WRT_OFF & _SCANE_available & _LVP_OFF
    __config _CONFIG5, _CP_OFF & _CPD_OFF
#ENDCONFIG

include "I:\Project_v2\PBP\PBP_Includes\DT_INTS-14_16F18877.bas"
include "I:\Project_v2\PBP\PBP_Includes\ReEnterPBP.bas"
ASM
INT_LIST  macro    ; IntSource,        Label,  Type, ResetFlag?
        INT_Handler    TMR1_INT,  _ToggleLED1,   PBP,  yes
    endm
    INT_CREATE               ; Creates the interrupt processor
ENDASM

DEFINE OSC 32
ANSELA = %00000000
ANSELB = %00000000
ANSELC = %00000000
ANSELD = %00000000
ANSELE = %00000000
TRISA = %00000000                       
TRISB = %00000000                       
TRISC = %00000000                         
TRISD = %00000000                        
TRISE = %00000000

T1CON = %00110001                                   ' 1:8 Prescale, Enables Timer1
'   bit 7-6 Unimplemented: Read as ‘0’
'   bit 5-4 CKPS<1:0>: Timer1 Input Clock Prescale Select bits
'        ---->  11 = 1:8 Prescale value
'               10 = 1:4 Prescale value
'               01 = 1:2 Prescale value
'               00 = 1:1 Prescale value
'   bit 3   Unimplemented: Read as ‘0’
'   bit 2   SYNC: Timer1 Synchronization Control bit
'                   When TMR1CLK = FOSC or FOSC/4
'                       This bit is ignored. The timer uses the internal clock and no
'                       additional synchronization is performed.
'                   When TMR1CS<1:0> = (any setting other than FOSC or FOSC/4)
'               1 = Do not synchronize external clock input
'               0 = Synchronized external clock input with system clock
'   bit 1   RD16: Timer1 On bit
'               1 = All 16 bits of Timer1 can be read simultaneously (TMR1H is buffered)
'               0 = 16-bit reads of Timer1 are disabled (TMR1H is not buffered)
'   bit 0   ON: Timer1 On bit
'        ---->  1 = Enables Timer1
'               0 = Stops Timer1 and clears Timer1 gate flip-flop

T1CLK = %00000001                                   ' FOSC/4 Timer1 Clock
'   bit 7-4 Unimplemented: Read as ‘0’
'   bit 3-0 TxCS<3:0>: Timer1/3/5 Clock Select bits
'               1111 = LC4_out
'               1110 = LC3_out
'               1101 = LC2_out
'               1100 = LC1_out
'               1011 = TMR5 overflow output(3)
'               1010 = TMR3 overflow output(2)
'               1001 = TMR1 overflow output(1)
'               1000 = TMR0 overflow output
'               0111 = CLKR output clock
'               0110 = SOSC
'               0101 = MFINTOSC                     ' 1.05msec @ 32MHz with no preload
'               0100 = LFINTOSC                     ' n/a
'               0011 = HFINTOSC                     ' 16.56msec @ 32MHz with no preload
'               0010 = FOSC                         ' 16.54msec @ 32MHz with no preload
'        ---->  0001 = FOSC/4                       ' 66.18msec @ 32MHz with no preload
'               0000 = TxCKIPPS
    
                                LatB.0 = 0
    TMR1H = 60 : TMR1L = 176                    ' 50msec interval (32MHz, 16bit, 1:8)
    PIE4.0 = 1                                  ' Starts Timer1
                                LatB.0 = 1

Main:
    LatB.5 = 1                              ' Heartbeat
    LatB.5 = 0
GOTO Main

ToggleLED1:
                                LatB.0 = 0
'    PIE4.0 = 0                                  ' Stops Timer1
    TMR1H = 60 : TMR1L = 176                    ' 50msec interval (32MHz, 16bit, 1:8)
'    PIE4.0 = 1                                  ' Restarts Timer1
                                LatB.0 = 1
@ INT_RETURN
Name:  1 - Timer1 No PIE.png
Views: 519
Size:  18.8 KB


This starts it once (same defines and registers):

Code:
ToggleLED1:
                                LatB.0 = 0
    PIE4.0 = 0                                  ' Stops Timer1
    TMR1H = 60 : TMR1L = 176                    ' 50msec interval (32MHz, 16bit, 1:8)
'    PIE4.0 = 1                                  ' Restarts Timer1
                                LatB.0 = 1
@ INT_RETURN
Name:  2 - Timer1 PIE 0.png
Views: 623
Size:  17.5 KB


This stops it, then starts it back up again (this is what I need for my project):

Code:
ToggleLED1:
                                LatB.0 = 0
    PIE4.0 = 0                                  ' Stops Timer1
    TMR1H = 60 : TMR1L = 176                    ' 50msec interval (32MHz, 16bit, 1:8)
    PIE4.0 = 1                                  ' Restarts Timer1
                                LatB.0 = 1
@ INT_RETURN
Name:  3 - Timer1 PIE 01.png
Views: 601
Size:  16.6 KB