Usually for counting pulses in time, such as speedometers/tachometers or the like,
you can either go for counting the number of pulses that occur over a constant defined duration,
or timing the space between each individual pulse with an interrupt.
The former is easier to implement from a BASIC point of view,
but when it gets to something like counting the number of pulses from your
transmission in one second, and calculating speed on that,
you end up with a display that can only be updated once per second,
and might find there aren't enough pulses to increase it's resolution.
There are some tricks to improve it such as using multiple intervals that
overlap each other, so a single pulse count might apply to a calculation
for multiple time intervals.
The former method, calculating based on the duration between each pulse
is more prone to error in some situations such as a heart rate monitor
where the hardware might throw in random pulses because our interface
to the Human heart isn't good, and although I haven't used one,
it sounds like a problem you might face with your sensor.
In that case I had the program look at a number of the previous times,
so that it could either average them out, or disqualify silly looking readings.
I was happy with that, although for a speedometer, it would mean that if
you crash it into a wall, the speedo would drop to zero over a number of readings.
I would be worried about the projects influence on the performance of the vessel,
but since you're the one doing it, I'm sure you've taken it into consideration.
Bookmarks