config stuff

This commit is contained in:
Wolfgang Hottgenroth
2014-11-15 23:42:31 +01:00
parent c687aff175
commit ca26284cf2
5 changed files with 102 additions and 6 deletions

54
Config.cpp Normal file
View File

@ -0,0 +1,54 @@
#include "Config.h"
float Config::getFloat(int pos) {
u_float u;
for (uint8_t i = 0; i < sizeof(float); i++) {
u.e[i] = EEPROM.read(pos + i);
}
return u.f;
}
void Config::setFloat(int pos, float value) {
u_float u;
u.f = value;
for (uint8_t i = 0; i < sizeof(float); i++) {
EEPROM.write(pos + i, u.e[i]);
}
}
unsigned int Config::getUInt32(int pos) {
u_uint32 u;
for (uint8_t i = 0; i < sizeof(uint32_t); i++) {
u.e[i] = EEPROM.read(pos + i);
}
return u.i;
}
void Config::setUInt32(int pos, uint32_t value) {
u_uint32 u;
u.i = value;
for (uint8_t i = 0; i < sizeof(uint32_t); i++) {
EEPROM.write(pos + i, u.e[i]);
}
}
bool Config::isInitialized() {
uint32_t magic = getUInt32(MAGIC);
return magic == MAGIC_TOKEN;
}
void Config::setMagic() {
setUInt32(MAGIC, MAGIC_TOKEN);
}
void Config::initialize() {
if (! isInitialized()) {
setFloat(ADC1START, 0.0);
setFloat(ADC1START + 4, 1.0);
setFloat(ADC2START, 0.0);
setFloat(ADC2START + 4, 1.0);
setMagic();
}
}