mirror of
https://github.com/qmk/qmk_firmware
synced 2024-11-14 07:55:28 +00:00
dipsw test on helix/rev2/sc/back:five_rows
This commit is contained in:
parent
38d7145da2
commit
4b13ebb996
3 changed files with 96 additions and 0 deletions
|
@ -27,6 +27,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD.
|
/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD.
|
||||||
see tmk_core/common/action_tapping.c */
|
see tmk_core/common/action_tapping.c */
|
||||||
|
|
||||||
|
//#define DIP_SWITCH_PINS { B5, B6 }
|
||||||
|
#define DIP_SWITCH_PINS { B5, B6, B5, B6 }
|
||||||
|
|
||||||
// place overrides here
|
// place overrides here
|
||||||
|
|
||||||
// If you need more program area, try select and reduce rgblight modes to use.
|
// If you need more program area, try select and reduce rgblight modes to use.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
#include "bootloader.h"
|
#include "bootloader.h"
|
||||||
#ifdef PROTOCOL_LUFA
|
#ifdef PROTOCOL_LUFA
|
||||||
#include "lufa.h"
|
#include "lufa.h"
|
||||||
|
@ -13,6 +14,7 @@
|
||||||
#ifdef CONSOLE_ENABLE
|
#ifdef CONSOLE_ENABLE
|
||||||
#include <print.h>
|
#include <print.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
extern keymap_config_t keymap_config;
|
extern keymap_config_t keymap_config;
|
||||||
|
|
||||||
|
@ -332,8 +334,14 @@ uint32_t default_layer_state_set_kb(uint32_t state) {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dump_pbuf(void);
|
||||||
void update_base_layer(int base)
|
void update_base_layer(int base)
|
||||||
{
|
{
|
||||||
|
uprintf("layer\n");
|
||||||
|
dump_pbuf();
|
||||||
|
dip_switch_read(true);
|
||||||
|
uprintf("call dip_switch_read(true)\n");
|
||||||
|
dump_pbuf();
|
||||||
if( current_default_layer != base ) {
|
if( current_default_layer != base ) {
|
||||||
eeconfig_update_default_layer(1UL<<base);
|
eeconfig_update_default_layer(1UL<<base);
|
||||||
default_layer_set(1UL<<base);
|
default_layer_set(1UL<<base);
|
||||||
|
@ -472,6 +480,16 @@ void music_scale_user(void)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
static uint16_t scancount = 0;
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
if( USB_DeviceState == DEVICE_STATE_Configured ) {
|
||||||
|
if( scancount < 10 )
|
||||||
|
uprintf("usb on scan=%d\n", scancount);
|
||||||
|
scancount += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||||
#ifdef SSD1306OLED
|
#ifdef SSD1306OLED
|
||||||
|
@ -595,3 +613,75 @@ void iota_gfx_task_user(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef struct _pr {
|
||||||
|
const char * PROGMEM fmt;
|
||||||
|
uint8_t arg1;
|
||||||
|
uint8_t arg2;
|
||||||
|
uint16_t timer;
|
||||||
|
} printbuf_t;
|
||||||
|
uint8_t pbuf_count = 0;
|
||||||
|
bool pbuf_overflow = false;
|
||||||
|
printbuf_t pbuf[16] = {0};
|
||||||
|
|
||||||
|
void dump_pbuf(void) {
|
||||||
|
#ifdef CONSOLE_ENABLE
|
||||||
|
if( pbuf_count > 0 ) {
|
||||||
|
uprintf(" dump_pbuf %d\n", pbuf_count);
|
||||||
|
for( uint8_t i = 0; i < pbuf_count; i++ ) {
|
||||||
|
uprintf(" %06d : ", pbuf[i].timer);
|
||||||
|
__xprintf(pbuf[i].fmt, pbuf[i].arg1, pbuf[i].arg2);
|
||||||
|
}
|
||||||
|
pbuf_count = 0;
|
||||||
|
if( pbuf_overflow ) {
|
||||||
|
uprintf(" pbuf overflow \n");
|
||||||
|
pbuf_overflow = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void dip_switch_update_user(uint8_t index, bool active) {
|
||||||
|
if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) {
|
||||||
|
pbuf[pbuf_count].fmt = PSTR("dip_switch_update_user(%d,%d)\n");
|
||||||
|
pbuf[pbuf_count].arg1 = index;
|
||||||
|
pbuf[pbuf_count].arg2 = active;
|
||||||
|
pbuf[pbuf_count].timer = timer_read();
|
||||||
|
pbuf_count++;
|
||||||
|
} else {
|
||||||
|
pbuf_overflow = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void dip_switch_update_mask_user(uint32_t state) {
|
||||||
|
if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) {
|
||||||
|
pbuf[pbuf_count].fmt = PSTR("dip_switch_update_mask_user(0b%b)\n");
|
||||||
|
pbuf[pbuf_count].arg1 = state;
|
||||||
|
pbuf[pbuf_count].timer = timer_read();
|
||||||
|
pbuf_count++;
|
||||||
|
} else {
|
||||||
|
pbuf_overflow = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboard_pre_init_user(void)
|
||||||
|
{
|
||||||
|
if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) {
|
||||||
|
pbuf[pbuf_count].fmt = PSTR("keyboard_pre_init_user()\n");
|
||||||
|
pbuf[pbuf_count].timer = timer_read();
|
||||||
|
pbuf_count++;
|
||||||
|
} else {
|
||||||
|
pbuf_overflow = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void)
|
||||||
|
{
|
||||||
|
if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) {
|
||||||
|
pbuf[pbuf_count].fmt = PSTR("keyboard_post_init_user()\n");
|
||||||
|
pbuf[pbuf_count].timer = timer_read();
|
||||||
|
pbuf_count++;
|
||||||
|
} else {
|
||||||
|
pbuf_overflow = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -30,6 +30,9 @@ ifneq ($(strip $(HELIX)),)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
CONSOLE_ENABLE = yes
|
||||||
|
DIP_SWITCH_ENABLE = yes
|
||||||
|
|
||||||
# convert Helix-specific options (that represent combinations of standard options)
|
# convert Helix-specific options (that represent combinations of standard options)
|
||||||
# into QMK standard options.
|
# into QMK standard options.
|
||||||
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
|
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
|
||||||
|
|
Loading…
Reference in a new issue