Use Timer1 something like this;
Code:DEFINE OSC 20 DEFINE LOADER_USED 1 Symbol T1IF = PIR1.0 ' Timer1 TMR1IF overflow flag bit SYMBOL TMR1ON = T1CON.0 ' Timer1 ON/OFF control bit T1CON = 0 ' Prescaler = 1:1, Timer off Cycles Var Word ' Holds Timer1 counts Main: TMR1H = 0 TMR1L = 0 T1IF = 0 ' Clear timer1 int flag T1CON = 1 ' Start timer ' --- Insert PBP commands or groups to time below ' --- MAX time @ 20MHz = 65,536 x 200nS = 13.1072mS ' --- MAX time @ 4MHz = 65,536 * 1uS = 65.536mS ' --- with 1:1 prescale on TMR1. serout2 0,16416,["ABC",13,10] ' Send 5 bytes at 19,200 bps ' ---------------------------------------- T1CON = 0 ' Stop Timer1 Cycles.lowbyte = TMR1L ' Get low byte Cycles.highbyte = TMR1H ' Get high byte ' Display Time result Hserout ["Timer1 Ticks = ",Dec Cycles,13,10] IF T1IF THEN HSEROUT ["TMR1 Over-flow, add 65,536 cycles to result",13,10] T1IF = 0 ENDIF PAUSE 1000 Here: Goto Here ' Sit & spin after measurements




Bookmarks