-
Sun 2019.07.28
'I meant the original intention of the code'
@AkosLukacs, the source wasn't needed as I only requested a snippet of how Arduino masked bits.
Too many over-lapping projects here. Was working on a tutorial for bitwise operators.
Unable to locate a suitable example on this site, was curious how it was done with 'C'. Was sent the snippet in #1, which maze1980 pointed out is being used by others. The formula wasn't even needed as I was just after how to mask bits. But interestingly, the formula did assist us in uncovering why my implementation started throwing errors, as you discovered.It does appear that the source sent me is a kludge copy of that or a similar file. Source that isn't commented is always suspect. Seeing the same no comments there (link #20) also, now puts the kludge chunk sent me in question.
So the formula does appear to have some physics/mathematical relationship for others to have used it.
Bigger fish to fry. Attempting to rework a rather large source is the big show stopper right now. Found this as an alternate means using additional memory:
Then on to having two devices talk back-n-forth, which I started here:
Using a formula to mask bits seems iffy anyway. What if down the road there becomes an EspruinoWiFi Deluxe using a different processor and different/unique floating point engine that is different from the existing one. Any attempt to port on to the new device, would result in errors there also. Then, immediately I'd get the blame for crappy code. A constants table makes more sense.
We'll wait for the manufacturer datasheet as you so pointed out.
Using named indexes would allow the ability to 'screen' a user request.
So, this appears to be the better solution, or an array of constants.
Thank you for your assistance with the detective work. It has been an exciting exchange and a fantastic learning experience.
A re-implementation from the original C line
can be re-written to C code using floating point numbers
and then converted to JavaScript:
(0.016384 is equal to Math.pow(2, 19) / 32000000)