What is x20?
what is f0?
what is x?
A little more detail and it is possible that a different solution exists.
The last time I did something similar, I had a pulses per mile count. After that the mile count would increase by 1. To handle numbers as big as 99999999 you can do it in code like I did
Pseudo code begins
Code:
miles[4] var byte ' lsb to msb
on input pulse, pulses=pulses+1
if pulses >= Pulsespermile
pulses = 0 ' start counting again till we reach pulses per mile
miles[0] = miles[0]+1
if miles[0] > 99 then
miles[0] =0
miles[1] = miles[1]+1
if miles[1] > 99 then
miles[1] = 0
miles[2] = miles[2]+1
if miles[2] > 99 then
miles[2] = 0
miles[3] = miles[3]+1
if miles[3] > 99 then
miles[3] = 0 ' roll over to all zero
endif
endif
endif
endif
endif
Now, displaying this is easy.
Code:
Num = miles[0] dig 1 ' first digit to display
digitpos = 0
gosub displaynum ' show the number
Num = miles[0] dig 0 ' 2nd digit to display
digitpos = 1
gosub displaynum ' show the number
Num = miles[1] dig 1 ' 3rd digit to display
digitpos = 2
gosub displaynum ' show the number
Num = miles[1] dig 0 ' 4th digit to display
digitpos = 3
gosub displaynum ' show the number
and so on
Bookmarks