there are more problems here than i can count
1, timer3 has no clock source
2, how can ticks ever get beyond 100
whenCode:main: LatB.1 = 1 ' Pulse heartbeat IF Ticks > 100 THEN LatB.0 = 0 ' End of interrupt ENDIF LatB.1 = 0 ' Reset heartbeat trace GOTO Main
3, a 16f18877 like all enhanced core pic16's has Auto context saveCode:ClockCount: ' Note: this is being handled as an ASM interrupt @ INT_START @ RELOAD_TIMER ; Reload Timer3 R0save = R0 ; Save 2 PBP system vars that are used during R1save = R1 ; the interrupt Ticks = Ticks + 1 if Ticks = 100 then Ticks = 0 IF CountDown THEN
the entire int_start / int_return macros are inappropriate
4, you need to rethink that, that is for timer1 not 3
Code:StartTimer: IF NOT ZERO THEN T3CON.1 = 0 ; (TMR3CS) Select FOSC/4 Clock Source T3CON.3 = 0 ; (T3OSCEN) Disable External Oscillator PIR4.0 = 0 ; (TMR3IF) Clear Timer3 Interrupt Flag PIE4.0 = 1 ; (TMR3IE) Enable TMR3 overflow interrupt INTCON.6 = 1 ; (PEIE) Enable peripheral interrupts INTCON.7 = 1 ; (GIE) Enable global interrupts T3CON.0 = 1 ; (TMR3ON) Start Timer3 ENDIF return




Bookmarks