~ruther/qmk_firmware

d055e0633e36e97802d60554f6002e47021ba5fd — tmk 12 years ago 1d5bbb5
Fix debug parameter setting in eeconfig
5 files changed, 31 insertions(+), 12 deletions(-)

M common/bootmagic.c
M common/bootmagic.h
M common/eeconfig.c
M common/eeconfig.h
M common/keyboard.c
M common/bootmagic.c => common/bootmagic.c +2 -2
@@ 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();
    }

M common/bootmagic.h => common/bootmagic.h +2 -2
@@ 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 */

M common/eeconfig.c => common/eeconfig.c +12 -2
@@ 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); }

M common/eeconfig.h => common/eeconfig.h +9 -1
@@ 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);


M common/keyboard.c => common/keyboard.c +6 -5
@@ 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();
    }