Hi all,
I just want to iterate some points, think of how a calculator works at a very simple level, you have keyboard(input), processor and display(output). You can't use your super byte efficient floats because going from keyboard to processor requires the use of string conversion and going from processor to display requires string conversion again, this causes string conversion errors ,on your register, every time you use strings for i/o.
My AVR compiler supports 64bit doubles but again whilst it gives 15 digits of precision, it will loose accuracy on i/o conversions.So, the super byte efficient floats offered within most compilers, that we all use, are not so good for calculator design. To solve this problem, we need a data type which avoids using strings all together and that's why BCD is used exclusively in calculator design. The problem is, our compilers do not support BCD data types, probably because they are very much byte inefficient. But, as westfw has pointed out, AVR's have tons of ram abundance, so there is nothing lacking there.
It might be interesting to implement a trivial set of digit-based calculations that implement grade-school longhand mathematical algorithms. Everything but division should be easy.
Yep, I started playing around with my AVR compiler last night, basically primary school math and byte arrays.I'm going to try and build 16 digit bcd registers coupled with integer exponents, should be fun.
ALE500, I appreciate your input, I apologize as I was just trying to be competitive.
Here's an interesting link to a retro calculator:
http://www.smbaker.com/nixie-tube-calculator-powered-by-a-raspberry-piCheers all
commie