Fix debug parameter setting in eeconfig
This commit is contained in:
		| @@ -10,12 +10,12 @@ | ||||
|  | ||||
| void bootmagic(void) | ||||
| { | ||||
|     if (!BOOTMAGIC_IS_ENABLED()) { return; } | ||||
|  | ||||
|     /* do scans in case of bounce */ | ||||
|     uint8_t scan = 100; | ||||
|     while (scan--) { matrix_scan(); _delay_ms(1); } | ||||
|  | ||||
|     if (!BOOTMAGIC_IS_ENABLE()) { return; } | ||||
|  | ||||
|     if (bootmagic_scan_keycode(BOOTMAGIC_BOOTLOADER_KEY)) { | ||||
|         bootloader_jump(); | ||||
|     } | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| #define BOOTMAGIC_H | ||||
|  | ||||
|  | ||||
| #ifndef BOOTMAGIC_IS_ENABLE | ||||
| #define BOOTMAGIC_IS_ENABLE()           true | ||||
| #ifndef BOOTMAGIC_IS_ENABLED | ||||
| #define BOOTMAGIC_IS_ENABLED()          true | ||||
| #endif | ||||
|  | ||||
| /* kick up bootloader */ | ||||
|   | ||||
| @@ -13,9 +13,19 @@ void eeconfig_init(void) | ||||
|     eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0); | ||||
| } | ||||
|  | ||||
| bool eeconfig_initialized(void) | ||||
| void eeconfig_enable(void) | ||||
| { | ||||
|     return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); | ||||
|     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); } | ||||
|   | ||||
| @@ -20,6 +20,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| #ifndef EECONFIG_IS_ENABLED | ||||
| #define EECONFIG_IS_ENABLED()       true | ||||
| #endif | ||||
|  | ||||
| #define EECONFIG_MAGIC_NUMBER                   (uint16_t)0xFEED | ||||
|  | ||||
| /* eeprom parameteter address */ | ||||
| @@ -61,10 +65,14 @@ typedef union { | ||||
|     }; | ||||
| } keyconf; | ||||
|  | ||||
| bool eeconfig_initialized(void); | ||||
| bool eeconfig_is_enabled(void); | ||||
|  | ||||
| void eeconfig_init(void); | ||||
|  | ||||
| void eeconfig_enable(void); | ||||
|  | ||||
| void eeconfig_disable(void); | ||||
|  | ||||
| uint8_t eeconfig_read_debug(void); | ||||
| void eeconfig_write_debug(uint8_t val); | ||||
|  | ||||
|   | ||||
| @@ -66,13 +66,14 @@ void keyboard_init(void) | ||||
|  | ||||
|     bootmagic(); | ||||
|  | ||||
|     if (eeconfig_initialized()) { | ||||
|     if (eeconfig_is_enabled()) { | ||||
|         uint8_t config; | ||||
|         config = eeconfig_read_debug(); | ||||
|         debug_enable = (config & EECONFIG_DEBUG_ENABLE); | ||||
|         debug_matrix = (config & EECONFIG_DEBUG_MATRIX); | ||||
|         debug_keyboard = (config & EECONFIG_DEBUG_KEYBOARD); | ||||
|         debug_mouse = (config & EECONFIG_DEBUG_MOUSE); | ||||
|         // ignored if debug is enabled by program before. | ||||
|         if (!debug_enable)   debug_enable   = (config & EECONFIG_DEBUG_ENABLE); | ||||
|         if (!debug_matrix)   debug_matrix   = (config & EECONFIG_DEBUG_MATRIX); | ||||
|         if (!debug_keyboard) debug_keyboard = (config & EECONFIG_DEBUG_KEYBOARD); | ||||
|         if (!debug_mouse)    debug_mouse    = (config & EECONFIG_DEBUG_MOUSE); | ||||
|     } else { | ||||
|         eeconfig_init(); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user