diff options
author | tmk <nobody@nowhere> | 2013-03-11 07:35:55 +0100 |
---|---|---|
committer | tmk <nobody@nowhere> | 2013-03-11 07:35:55 +0100 |
commit | 48433a5e9988647a737234c11dd9db4080fd4a4e (patch) | |
tree | 4af03a20658cb7e6cd43f9c65dfa002f1b544332 /common/eeconfig.c | |
parent | 5d6b848a157a2e94859949961297d40da6a77527 (diff) | |
parent | ef8439bddb2d7fe5fd95faf2b6bebd8235acf160 (diff) | |
download | qmk_firmware-48433a5e9988647a737234c11dd9db4080fd4a4e.tar.gz qmk_firmware-48433a5e9988647a737234c11dd9db4080fd4a4e.tar.xz |
Merge branch 'eeprom_config'
Diffstat (limited to 'common/eeconfig.c')
-rw-r--r-- | common/eeconfig.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/common/eeconfig.c b/common/eeconfig.c new file mode 100644 index 000000000..cea3810ee --- /dev/null +++ b/common/eeconfig.c @@ -0,0 +1,38 @@ +#include <stdint.h> +#include <stdbool.h> +#include <avr/eeprom.h> +#include "eeconfig.h" + + +void eeconfig_init(void) +{ + eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_write_byte(EECONFIG_DEBUG, 0); + eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0); + eeprom_write_byte(EECONFIG_KEYCONF, 0); + eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0); +} + +void eeconfig_enable(void) +{ + eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); +} + +void eeconfig_disable(void) +{ + eeprom_write_word(EECONFIG_MAGIC, 0xFFFF); +} + +bool eeconfig_is_enabled(void) +{ + return EECONFIG_IS_ENABLED() && (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); +} + +uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } +void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); } + +uint8_t eeconfig_read_defalt_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } +void eeconfig_write_defalt_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); } + +uint8_t eeconfig_read_keyconf(void) { return eeprom_read_byte(EECONFIG_KEYCONF); } +void eeconfig_write_keyconf(uint8_t val) { eeprom_write_byte(EECONFIG_KEYCONF, val); } |