No the pause length isnt critical. I'm trying to get one switch to start and stop the elapsed timer. So it needs a debounce and a wait period so that it doesnt immediately stop the timer again.
Here's what I have but it doesnt work to well:
This means the user has to press and hold the button for 1 second before the timer will start. However, if they press it for 1.5 seconds, then they only need to press it again for half a second and it stops. If they press it for 2.5 seconds, then timer has started, stopped and is half way to starting again.Code:loop1: For A = 0 to 1000 IF PORTB.7 = 1 and TimerRunning = 0 then gosub StartTimer endif next A if SecondsChanged = 1 then LCDout $FE,2, dec2 Hours,":",dec2 Minutes,":",dec2 Seconds SecondsChanged = 0 endif For B = 0 to 1000 If PORTB.7 = 1 and timerrunning = 1 then gosub StopTimer endif next B goto loop1
I was wondering id something like this would work?
I think the problem with both of them is that there is no time between the on if then and the off if then, and there needs to be some sort of logic that says that if the timer is running and the button is still pressed, do not stop the timer until the button has been released and pressed again.Code:'If PORTB.7 = 1 then 'gosub StartTimer 'TimerRunning = 1 'pause 150 'endif If SecondsChanged = 1 then LCDout $FE,2, dec2 Hours,":",dec2 Minutes,":",dec2 Seconds SecondsChanged = 0 endif If PORTB.7 = 1 AND TimerRunning = 1 then 'gosub StopTimer 'TimerRunning = 0 'pause 150 'endif




Bookmarks