* Broke up the code into more general functions instead of duplicating code
* Made stuff const and removed variables no longer used
* Use defines for menu button values
* Changed the order or things to avoid forward declarations
* Use array lookup instead of switch-case on some menu options
* Adjust menu functionification
* Cleaned up sensor rendering
This bug would probably never happen in real life, and could be fix by holding down menu and enter buttons at startup. But a bug is a bug.
The only reason I found this bug is that the simulator didn’t initialise EEPROM to 0xff, and even after I did that it crashed, because a version of 0xffff wasn't handled.
No need to convert a value to double when all we want is a two digits converted to string.
This also avoids linking some math library, which saved almost 8K och program storage space.
This change required lots of other changes to have it compile. I had to declare all variables from NuEVI.ino used by the menu as extern in a separate header file (globals.h).
Also I moved all defines from NuEVI.ino to a config.h file. I think some of these could be moved back or even moved into menu.cpp.
I declared many variables and functions in menu.cpp as static and moved them around to avoid forward declarations. For simplicity I did some forward declarations anyway.
Some varibles only used in menu.cpp was moved from NuEVI.ino instead of having them as externals.