try this one
Code:
' Program to measure time on two pins in a 1uSec increment
' Using PIC16F874 with TIMER1
TRISA=255 ' Set PORTA as INPUT
ADCON1 = 7 ' disable analog to digital converter
T1CON = 0 ' set timer clock source to internal (fosc/4)
Signal1TIME var word
Signal2TIME var word
Signal1 var PORTA.1
Signal2 var PORTA.2
Start:
' measure period on RA.1
'
TMR1L=0
TMR1H=0
while signal1=0 ' waiting for rising edge
wend
T1CON.0 = 1 ' start Timer1
While signal1 ' wait for falling edge
wend
while signal1 = 0 ' wait for the next rising edge
wend
T1CON = 0 ' stopTimer
signal1time.lowbyte = TMR1L
Signal1time.highbyte = TMR1H
' measure period on RA.2
'
TMR1L=0
TMR1H=0
while signal2=0 ' waiting for rising edge
wend
T1CON.0 = 1 ' start Timer1
While signal2 ' wait for falling edge
wend
while signal2 = 0 ' wait for the next rising edge
wend
T1CON = 0 ' stopTimer
signal2time.lowbyte = TMR1L
Signal2time.highbyte = TMR1H
lcdout $fe,1 ,"RA1 : ",#signal1," uSec",_
$fe,$c0,"RA2 : ",#signal2," uSec"
pause 2000
goto start
This is suppose to work.
Bookmarks