Yep, another tacho project... Just in the process of building a digital tacho - 4 x 7 segment LED display, 16F88 PIC @4MHz.
Hardware is all fine. I can get it to display numbers etc.
Input pulse period is monitored via Timer1 INT on RB0.
BUT, I'm programming in Assembly. So, I need to capture the timer1 value at interrupt, which will give me the period, in µs, in a binary format (Timer1 is a 16-Bit Timer).
My question is: How do I actually convert this into a usable REVS per Minute value?
These are the steps involved, as far as I can work out:
1. determine cycle period (time between each falling edge). This will be a 16-Bit Binary number on Timer1 interrupt.
2. determine Frequency (in revs per minute). This is tricky.
3. convert binary to decimal - can be done, although complicated.
The main problem is dealing with 16-bit numbers with an 8-bit micro.
Anyone know of a SIMPLE way of doing this? any help or ideas would be mcuh appreciated!
Thanks
-Tom
Hardware is all fine. I can get it to display numbers etc.
Input pulse period is monitored via Timer1 INT on RB0.
BUT, I'm programming in Assembly. So, I need to capture the timer1 value at interrupt, which will give me the period, in µs, in a binary format (Timer1 is a 16-Bit Timer).
My question is: How do I actually convert this into a usable REVS per Minute value?
These are the steps involved, as far as I can work out:
1. determine cycle period (time between each falling edge). This will be a 16-Bit Binary number on Timer1 interrupt.
2. determine Frequency (in revs per minute). This is tricky.
3. convert binary to decimal - can be done, although complicated.
The main problem is dealing with 16-bit numbers with an 8-bit micro.
Anyone know of a SIMPLE way of doing this? any help or ideas would be mcuh appreciated!
Thanks
-Tom