I guess what I'm asking is how to take the 0 and 1 bit from one number and put them into a seperate number so that I can further scale just those two bits. Thanks!!!
I guess what I'm asking is how to take the 0 and 1 bit from one number and put them into a seperate number so that I can further scale just those two bits. Thanks!!!
This will give you a value with just the first two bits of the original byte:Originally Posted by champion
TwoBits = OrigByte & %00000011
HTH,
Steve
Here may be a more complete answer to your question:
Here are a couple of nice threads by Darrel Taylor dealing with exploiting PBP's integer math:Code:PotValue VAR BYTE Degrees VAR WORD Minutes VAR WORD Degrees = Potvalue * 14118 ' Convert to degrees and fractional Degrees ' scaled by 10000. ' It does not matter that we assign Degrees a value before DIV32, ' since DIV32 uses only internal PBP variable in the calculation ' It is important that DIV32 follows right after the Multiply ' Degrees = DIV32 10000 ' Returns degrees Minutes = R2 ' Returns the remainder of the division, ' which is fractional degress scaled by 10000 Minutes = (Minutes * 6)/1000 ' returns minutes
Retrieving 32bit Multiply Result
Retrieving Div32 Remainder (This one explains "Minutes = R2". See the last post in the thread)
32-bit Variables and DIV32, Hourmeter 99999.9
Steve
It seems a little over-kill to be getting minutes when the accuracy of your measurements is not even 1 degree. That, and a pot is also not likely to give you very consistant accuracy as well. Even if you used 10 bits, you are still looking at a LSB of .35 degrees (21 minutes).
Just my 2 cents,
Steve
Thanks again for all of your help. I have tried this, and I get a two bit result, however they are not the last two digits of the potvalue * conversion. I will do more research inside the threads you listed to figure out exactly what these two bits are representing. Thank you very much for your help, and I will be sure not to forget it when/if you ever have a question in the future.
Steve, actually I am trying to have accuracy down to 1 minute. I have come to the conclusion however, like you say, that a pot will not have the repeatability that I will need to take on this task. I have moved on to an optical encoder with 8192 pulses per revolution and a gear ratio of 3:1. Thanks for all of your help.
Bookmarks