WhyNot use a traditional way;
Code:
' 9 Pulses come in in 0ne meter.
' Measure the time it takes for 9 pulses to come in.
' Timer0 is in Counter Mode.
' Timer1 is in Timer Mode.
' Set your prescaler and other TMR settings etc... here.
Start:
TMR1ON = 0 ' Stop TMR1.
TMR1H = 0 ' Clear TMR1.
TMR1L = 0 '....
Speed = 0 ' Speed is a Word variable.
TMR0 = 0 ' Clear TRM0.
WHILE TMR0 = 0 : WEND ' Wait for an incoming Pulse (First pulse does not count).
TMR1ON = 1 ' Start Timer1 Module.
WHILE TMR0 < 9 : WEND ' Count 9 pulses.
TMR1ON = 0 ' Stop Timer1 at 9th Pulse.
Speed.LowByte = TMR1L
Speed.HighByte = TMR1H
' The car took 1Meter in "Speed" mS. Example: 1 Meter in 100mS.
Speed = 60000 / Speed ' Speed = 60,000mS / 100Ms => 600 Meter in One Minute.
Speed = Speed * 60 ' Speed = Speed * 60Mins => 600Meter * 60Mins = 36,000Meter. => 36Km/Hr
LCDOUT $FE,1,"Speed:", dec5 Speed,"Km/Hr"
Goto Start
Bookmarks