mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	Add support for backlight
This commit is contained in:
		
							parent
							
								
									9de9d71952
								
							
						
					
					
						commit
						1eb8523e95
					
				@ -23,6 +23,7 @@ These features can be used in your keyboard.
 | 
				
			|||||||
* Virtual DIP Switch  - Configurations stored EEPROM(Boot Magic)
 | 
					* Virtual DIP Switch  - Configurations stored EEPROM(Boot Magic)
 | 
				
			||||||
* Locking CapsLock    - Mechanical switch support for CapsLock
 | 
					* Locking CapsLock    - Mechanical switch support for CapsLock
 | 
				
			||||||
* Breathing Sleep LED - Sleep indicator with charm during USB suspend
 | 
					* Breathing Sleep LED - Sleep indicator with charm during USB suspend
 | 
				
			||||||
 | 
					* Backlight           - Control backlight levels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Projects
 | 
					Projects
 | 
				
			||||||
 | 
				
			|||||||
@ -63,6 +63,11 @@ ifdef SLEEP_LED_ENABLE
 | 
				
			|||||||
    OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
 | 
					    OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					    SRC += $(COMMON_DIR)/backlight.c
 | 
				
			||||||
 | 
					    OPT_DEFS += -DBACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Search Path
 | 
					# Search Path
 | 
				
			||||||
VPATH += $(TOP_DIR)/common
 | 
					VPATH += $(TOP_DIR)/common
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#include "mousekey.h"
 | 
					#include "mousekey.h"
 | 
				
			||||||
#include "command.h"
 | 
					#include "command.h"
 | 
				
			||||||
#include "led.h"
 | 
					#include "led.h"
 | 
				
			||||||
 | 
					#include "backlight.h"
 | 
				
			||||||
#include "action_layer.h"
 | 
					#include "action_layer.h"
 | 
				
			||||||
#include "action_tapping.h"
 | 
					#include "action_tapping.h"
 | 
				
			||||||
#include "action_oneshot.h"
 | 
					#include "action_oneshot.h"
 | 
				
			||||||
@ -291,6 +292,26 @@ void process_action(keyrecord_t *record)
 | 
				
			|||||||
        case ACT_MACRO:
 | 
					        case ACT_MACRO:
 | 
				
			||||||
            action_macro_play(action_get_macro(record, action.func.id, action.func.opt));
 | 
					            action_macro_play(action_get_macro(record, action.func.id, action.func.opt));
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					        case ACT_BACKLIGHT:
 | 
				
			||||||
 | 
					            if (!event.pressed) {
 | 
				
			||||||
 | 
					                switch (action.backlight.id) {
 | 
				
			||||||
 | 
					                    case BACKLIGHT_INCREASE:
 | 
				
			||||||
 | 
					                        backlight_increase();
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case BACKLIGHT_DECREASE:
 | 
				
			||||||
 | 
					                        backlight_decrease();
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case BACKLIGHT_TOGGLE:
 | 
				
			||||||
 | 
					                        backlight_toggle();
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                    case BACKLIGHT_STEP:
 | 
				
			||||||
 | 
					                        backlight_step();
 | 
				
			||||||
 | 
					                        break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        case ACT_COMMAND:
 | 
					        case ACT_COMMAND:
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
				
			|||||||
@ -85,6 +85,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
 * 1100|opt | id(8)      Macro play?
 | 
					 * 1100|opt | id(8)      Macro play?
 | 
				
			||||||
 * 1100|1111| id(8)      Macro record?
 | 
					 * 1100|1111| id(8)      Macro record?
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 | 
					 * ACT_BACKLIGHT(1101):
 | 
				
			||||||
 | 
					 * 1110|xxxx| id(8)      Backlight commands
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 * ACT_COMMAND(1110):
 | 
					 * ACT_COMMAND(1110):
 | 
				
			||||||
 * 1110|opt | id(8)      Built-in Command exec
 | 
					 * 1110|opt | id(8)      Built-in Command exec
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@ -109,6 +112,7 @@ enum action_kind_id {
 | 
				
			|||||||
    ACT_LAYER_TAP1      = 0b1011,
 | 
					    ACT_LAYER_TAP1      = 0b1011,
 | 
				
			||||||
    /* Extensions */
 | 
					    /* Extensions */
 | 
				
			||||||
    ACT_MACRO           = 0b1100,
 | 
					    ACT_MACRO           = 0b1100,
 | 
				
			||||||
 | 
					    ACT_BACKLIGHT       = 0b1101,
 | 
				
			||||||
    ACT_COMMAND         = 0b1110,
 | 
					    ACT_COMMAND         = 0b1110,
 | 
				
			||||||
    ACT_FUNCTION        = 0b1111
 | 
					    ACT_FUNCTION        = 0b1111
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -157,6 +161,9 @@ typedef union {
 | 
				
			|||||||
        uint8_t  page   :2;
 | 
					        uint8_t  page   :2;
 | 
				
			||||||
        uint8_t  kind   :4;
 | 
					        uint8_t  kind   :4;
 | 
				
			||||||
    } usage;
 | 
					    } usage;
 | 
				
			||||||
 | 
					    struct action_backlight {
 | 
				
			||||||
 | 
					        uint8_t  id     :8;
 | 
				
			||||||
 | 
					    } backlight;
 | 
				
			||||||
    struct action_command {
 | 
					    struct action_command {
 | 
				
			||||||
        uint8_t  id     :8;
 | 
					        uint8_t  id     :8;
 | 
				
			||||||
        uint8_t  opt    :4;
 | 
					        uint8_t  opt    :4;
 | 
				
			||||||
@ -272,10 +279,21 @@ enum layer_pram_tap_op {
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 * Extensions
 | 
					 * Extensions
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					enum backlight_id {
 | 
				
			||||||
 | 
					    BACKLIGHT_INCREASE = 0,
 | 
				
			||||||
 | 
					    BACKLIGHT_DECREASE = 1,
 | 
				
			||||||
 | 
					    BACKLIGHT_TOGGLE   = 2,
 | 
				
			||||||
 | 
					    BACKLIGHT_STEP     = 3,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
/* Macro */
 | 
					/* Macro */
 | 
				
			||||||
#define ACTION_MACRO(id)                ACTION(ACT_MACRO, (id))
 | 
					#define ACTION_MACRO(id)                ACTION(ACT_MACRO, (id))
 | 
				
			||||||
#define ACTION_MACRO_TAP(id)            ACTION(ACT_MACRO, FUNC_TAP<<8 | (id))
 | 
					#define ACTION_MACRO_TAP(id)            ACTION(ACT_MACRO, FUNC_TAP<<8 | (id))
 | 
				
			||||||
#define ACTION_MACRO_OPT(id, opt)       ACTION(ACT_MACRO, (opt)<<8 | (id))
 | 
					#define ACTION_MACRO_OPT(id, opt)       ACTION(ACT_MACRO, (opt)<<8 | (id))
 | 
				
			||||||
 | 
					/* Backlight */
 | 
				
			||||||
 | 
					#define ACTION_BACKLIGHT_INCREASE()     ACTION(ACT_BACKLIGHT, BACKLIGHT_INCREASE)
 | 
				
			||||||
 | 
					#define ACTION_BACKLIGHT_DECREASE()     ACTION(ACT_BACKLIGHT, BACKLIGHT_DECREASE)
 | 
				
			||||||
 | 
					#define ACTION_BACKLIGHT_TOGGLE()       ACTION(ACT_BACKLIGHT, BACKLIGHT_TOGGLE)
 | 
				
			||||||
 | 
					#define ACTION_BACKLIGHT_STEP()         ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP)
 | 
				
			||||||
/* Command */
 | 
					/* Command */
 | 
				
			||||||
#define ACTION_COMMAND(id, opt)         ACTION(ACT_COMMAND,  (opt)<<8 | (addr))
 | 
					#define ACTION_COMMAND(id, opt)         ACTION(ACT_COMMAND,  (opt)<<8 | (addr))
 | 
				
			||||||
/* Function */
 | 
					/* Function */
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										77
									
								
								common/backlight.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								common/backlight.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2013 Mathias Andersson <wraul@dbox.se>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					(at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					GNU General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "backlight.h"
 | 
				
			||||||
 | 
					#include "eeconfig.h"
 | 
				
			||||||
 | 
					#include "debug.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					backlight_config_t backlight_config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_init(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /* check signature */
 | 
				
			||||||
 | 
					    if (!eeconfig_is_enabled()) {
 | 
				
			||||||
 | 
					        eeconfig_init();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    backlight_config.raw = eeconfig_read_backlight();
 | 
				
			||||||
 | 
					    backlight_set(backlight_config.enable ? backlight_config.level : 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_increase(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(backlight_config.level < BACKLIGHT_LEVELS)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        backlight_config.level++;
 | 
				
			||||||
 | 
					        backlight_config.enable = 1;
 | 
				
			||||||
 | 
					        eeconfig_write_backlight(backlight_config.raw);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    dprintf("backlight increase: %u\n", backlight_config.level);
 | 
				
			||||||
 | 
					    backlight_set(backlight_config.level);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_decrease(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(backlight_config.level > 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        backlight_config.level--;
 | 
				
			||||||
 | 
					        backlight_config.enable = !!backlight_config.level;
 | 
				
			||||||
 | 
					        eeconfig_write_backlight(backlight_config.raw);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    dprintf("backlight decrease: %u\n", backlight_config.level);
 | 
				
			||||||
 | 
					    backlight_set(backlight_config.level);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_toggle(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    backlight_config.enable ^= 1;
 | 
				
			||||||
 | 
					    eeconfig_write_backlight(backlight_config.raw);
 | 
				
			||||||
 | 
					    dprintf("backlight toggle: %u\n", backlight_config.enable);
 | 
				
			||||||
 | 
					    backlight_set(backlight_config.enable ? backlight_config.level : 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_step(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    backlight_config.level++;
 | 
				
			||||||
 | 
					    if(backlight_config.level > BACKLIGHT_LEVELS)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        backlight_config.level = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    backlight_config.enable = !!backlight_config.level;
 | 
				
			||||||
 | 
					    eeconfig_write_backlight(backlight_config.raw);
 | 
				
			||||||
 | 
					    dprintf("backlight step: %u\n", backlight_config.level);
 | 
				
			||||||
 | 
					    backlight_set(backlight_config.level);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										41
									
								
								common/backlight.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								common/backlight.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2013 Mathias Andersson <wraul@dbox.se>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					(at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					GNU General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef BACKLIGHT_H
 | 
				
			||||||
 | 
					#define BACKLIGHT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union {
 | 
				
			||||||
 | 
					    uint8_t raw;
 | 
				
			||||||
 | 
					    struct {
 | 
				
			||||||
 | 
					        bool    enable:1;
 | 
				
			||||||
 | 
					        uint8_t level:7;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					} backlight_config_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_init(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_increase(void);
 | 
				
			||||||
 | 
					void backlight_decrease(void);
 | 
				
			||||||
 | 
					void backlight_toggle(void);
 | 
				
			||||||
 | 
					void backlight_step(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void backlight_set(uint8_t level);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
@ -31,6 +31,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#include "sleep_led.h"
 | 
					#include "sleep_led.h"
 | 
				
			||||||
#include "led.h"
 | 
					#include "led.h"
 | 
				
			||||||
#include "command.h"
 | 
					#include "command.h"
 | 
				
			||||||
 | 
					#include "backlight.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef MOUSEKEY_ENABLE
 | 
					#ifdef MOUSEKEY_ENABLE
 | 
				
			||||||
#include "mousekey.h"
 | 
					#include "mousekey.h"
 | 
				
			||||||
@ -149,6 +150,12 @@ static void print_eeconfig(void)
 | 
				
			|||||||
    print(".no_gui: "); print_dec(kc.no_gui); print("\n");
 | 
					    print(".no_gui: "); print_dec(kc.no_gui); print("\n");
 | 
				
			||||||
    print(".swap_grave_esc: "); print_dec(kc.swap_grave_esc); print("\n");
 | 
					    print(".swap_grave_esc: "); print_dec(kc.swap_grave_esc); print("\n");
 | 
				
			||||||
    print(".swap_backslash_backspace: "); print_dec(kc.swap_backslash_backspace); print("\n");
 | 
					    print(".swap_backslash_backspace: "); print_dec(kc.swap_backslash_backspace); print("\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    backlight_config_t bc;
 | 
				
			||||||
 | 
					    bc.raw = eeconfig_read_backlight();
 | 
				
			||||||
 | 
					    print("backlight_config.raw: "); print_hex8(bc.raw); print("\n");
 | 
				
			||||||
 | 
					    print(".enable: "); print_dec(bc.enable); print("\n");
 | 
				
			||||||
 | 
					    print(".level: "); print_dec(bc.level); print("\n");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,6 +10,7 @@ void eeconfig_init(void)
 | 
				
			|||||||
    eeprom_write_byte(EECONFIG_DEFAULT_LAYER,  0);
 | 
					    eeprom_write_byte(EECONFIG_DEFAULT_LAYER,  0);
 | 
				
			||||||
    eeprom_write_byte(EECONFIG_KEYMAP,         0);
 | 
					    eeprom_write_byte(EECONFIG_KEYMAP,         0);
 | 
				
			||||||
    eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
 | 
					    eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
 | 
				
			||||||
 | 
					    eeprom_write_byte(EECONFIG_BACKLIGHT,      0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void eeconfig_enable(void)
 | 
					void eeconfig_enable(void)
 | 
				
			||||||
@ -35,3 +36,6 @@ void eeconfig_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFA
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
uint8_t eeconfig_read_keymap(void)      { return eeprom_read_byte(EECONFIG_KEYMAP); }
 | 
					uint8_t eeconfig_read_keymap(void)      { return eeprom_read_byte(EECONFIG_KEYMAP); }
 | 
				
			||||||
void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); }
 | 
					void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t eeconfig_read_backlight(void)      { return eeprom_read_byte(EECONFIG_BACKLIGHT); }
 | 
				
			||||||
 | 
					void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); }
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#define EECONFIG_H
 | 
					#define EECONFIG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define EECONFIG_MAGIC_NUMBER                       (uint16_t)0xFEED
 | 
					#define EECONFIG_MAGIC_NUMBER                       (uint16_t)0xFEED
 | 
				
			||||||
@ -29,6 +30,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#define EECONFIG_DEFAULT_LAYER                      (uint8_t *)3
 | 
					#define EECONFIG_DEFAULT_LAYER                      (uint8_t *)3
 | 
				
			||||||
#define EECONFIG_KEYMAP                             (uint8_t *)4
 | 
					#define EECONFIG_KEYMAP                             (uint8_t *)4
 | 
				
			||||||
#define EECONFIG_MOUSEKEY_ACCEL                     (uint8_t *)5
 | 
					#define EECONFIG_MOUSEKEY_ACCEL                     (uint8_t *)5
 | 
				
			||||||
 | 
					#define EECONFIG_BACKLIGHT                          (uint8_t *)6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* debug bit */
 | 
					/* debug bit */
 | 
				
			||||||
@ -64,4 +66,7 @@ void eeconfig_write_default_layer(uint8_t val);
 | 
				
			|||||||
uint8_t eeconfig_read_keymap(void);
 | 
					uint8_t eeconfig_read_keymap(void);
 | 
				
			||||||
void eeconfig_write_keymap(uint8_t val);
 | 
					void eeconfig_write_keymap(uint8_t val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t eeconfig_read_backlight(void);
 | 
				
			||||||
 | 
					void eeconfig_write_backlight(uint8_t val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -31,6 +31,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#include "bootmagic.h"
 | 
					#include "bootmagic.h"
 | 
				
			||||||
#include "eeconfig.h"
 | 
					#include "eeconfig.h"
 | 
				
			||||||
#include "mousekey.h"
 | 
					#include "mousekey.h"
 | 
				
			||||||
 | 
					#include "backlight.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef MATRIX_HAS_GHOST
 | 
					#ifdef MATRIX_HAS_GHOST
 | 
				
			||||||
@ -65,6 +66,10 @@ void keyboard_init(void)
 | 
				
			|||||||
#ifdef BOOTMAGIC_ENABLE
 | 
					#ifdef BOOTMAGIC_ENABLE
 | 
				
			||||||
    bootmagic();
 | 
					    bootmagic();
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					    backlight_init();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,14 @@
 | 
				
			|||||||
#include "suspend.h"
 | 
					#include "suspend.h"
 | 
				
			||||||
#include "matrix.h"
 | 
					#include "matrix.h"
 | 
				
			||||||
#include "action.h"
 | 
					#include "action.h"
 | 
				
			||||||
 | 
					#include "backlight.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void suspend_power_down(void)
 | 
					void suspend_power_down(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					    backlight_set(0);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#ifndef NO_SUSPEND_POWER_DOWN
 | 
					#ifndef NO_SUSPEND_POWER_DOWN
 | 
				
			||||||
    // Enable watchdog to wake from MCU sleep
 | 
					    // Enable watchdog to wake from MCU sleep
 | 
				
			||||||
    cli();
 | 
					    cli();
 | 
				
			||||||
@ -50,6 +54,9 @@ void suspend_wakeup_init(void)
 | 
				
			|||||||
    // clear matrix and keyboard state
 | 
					    // clear matrix and keyboard state
 | 
				
			||||||
    matrix_init();
 | 
					    matrix_init();
 | 
				
			||||||
    clear_keyboard();
 | 
					    clear_keyboard();
 | 
				
			||||||
 | 
					#ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					    backlight_init();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef NO_SUSPEND_POWER_DOWN
 | 
					#ifndef NO_SUSPEND_POWER_DOWN
 | 
				
			||||||
 | 
				
			|||||||
@ -132,6 +132,7 @@ Optional. Note that ***comment out*** to disable them.
 | 
				
			|||||||
    COMMAND_ENABLE = yes        # Commands for debug and configuration
 | 
					    COMMAND_ENABLE = yes        # Commands for debug and configuration
 | 
				
			||||||
    SLEEP_LED_ENABLE = yes      # Breathing sleep LED during USB suspend
 | 
					    SLEEP_LED_ENABLE = yes      # Breathing sleep LED during USB suspend
 | 
				
			||||||
    #NKRO_ENABLE = yes          # USB Nkey Rollover - not yet supported in LUFA
 | 
					    #NKRO_ENABLE = yes          # USB Nkey Rollover - not yet supported in LUFA
 | 
				
			||||||
 | 
					    #BACKLIGHT_ENABLE = yes     # Enable keyboard backlight functionality
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 3. Programmer
 | 
					### 3. Programmer
 | 
				
			||||||
Optional. Set proper command for your controller, bootloader and programmer. This command can be used with `make program`. Not needed if you use `FLIP`, `dfu-programmer` or `Teesy Loader`.
 | 
					Optional. Set proper command for your controller, bootloader and programmer. This command can be used with `make program`. Not needed if you use `FLIP`, `dfu-programmer` or `Teesy Loader`.
 | 
				
			||||||
 | 
				
			|||||||
@ -430,6 +430,27 @@ See `keyboard/hhkb/keymap.c` for sample.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 2.5 Backlight Action
 | 
				
			||||||
 | 
					These actions control the backlight.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### 2.5.1 Change backlight level
 | 
				
			||||||
 | 
					Increase backlight level.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ACTION_BACKLIGHT_INCREASE()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Decrease backlight level.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ACTION_BACKLIGHT_DECREASE()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Step through backlight levels.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ACTION_BACKLIGHT_STEP()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### 2.5.2 Turn on / off backlight
 | 
				
			||||||
 | 
					Turn the backlight on and off without changing level.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ACTION_BACKLIGHT_TOGGLE()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 3. Layer switching Example
 | 
					## 3. Layer switching Example
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user