Yes of course it does. I thought we came to the conclusion that you couldn't use Darrels timer template because it calculated the reload value at build time and you wanted to calculate it at runtime. Now you're trying to use it anyway....I don't get it.
Code:INCLUDE "DT_INTS-18.bas" INCLUDE "ReEnterPBP-18.bas" InterruptFrequency VAR WORD Dummy VAR WORD Dummy2 VAR WORD Dummy3 VAR WORD TMRCopy VAR WORD TimerReloadValue VAR WORD Dummy2 = 10000 Dummy3 = 10000 InterruptFrequency = 5000 ASM INT_LIST macro ; IntSource, Label, Type, ResetFlag? INT_Handler TMR1_INT, _TimezUp, PBP, yes endm INT_CREATE ; Creates the interrupt processor ENDASM @ INT_ENABLE TMR1_INT ; enable Timer 1 interrupts TRISB.3 = 0 ' Output to measure interrupt frequency CMCON = 7 ADCON1 = %00001111 ' No analog inputs. T1CON.0 = 1 ' Start TMR1 Dummy = Dummy2 * Dummy3 TimerReloadValue = Div32 InterruptFrequency TimerReloadValue = 65535 - TimerReloadValue + 1 LCDOUT $FE,1,"F: ", #InterruptFrequency, " Reload: ", #TimerReloadValue Main: Pause 20 Goto Main ' ---------- Interrupt handler ------------ TimezUp: T1CON.0 = 0 ' Stop TMR1 TMRCopy.HighByte = TMR1H ' Copy value of TMR1 registers TMRCopy.LowByte = TMR1L TMRCopy = TMRCopy + TimerReloadValue ' Add reload value (compensates for overhead) TMR1H = TMRCOPY.HighByte ' And back to TMR1 TMR1L = TMRCopy.LowByte T1CON.0 = 1 ' Restart Timer Toggle PortB.3 @ INT_RETURN




Bookmarks