added a jump to bootloader key-function
parent
039aba752b
commit
d4b9d88464
|
@ -27,6 +27,8 @@
|
|||
#define f_l_dex &kbfun_layer_dec_exec
|
||||
#define f_2kcap &kbfun_2_keys_capslock_press_release
|
||||
#define f_lm_nu &kbfun_layermask_numpad_press_release
|
||||
#define f_btldr &kbfun_jump_to_bootloader
|
||||
|
||||
|
||||
|
||||
uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
|
||||
|
@ -57,14 +59,14 @@ _ctrlR, _enter,
|
|||
// unused
|
||||
0,
|
||||
// left hand
|
||||
0, _F1, _F2, _F3, _F4, _F5, _F11,
|
||||
0, _braceL_kp, _braceR_kp, _bracketL, _bracketR, 0, _esc,
|
||||
0, _semicolon, _slash, _dash, 0, _colon_kp,
|
||||
2, 0, 0, 0, 0, 0, 0,
|
||||
0, _arrowL, _arrowU, _arrowD, _arrowR,
|
||||
_bs,
|
||||
_del, _ctrlL,
|
||||
_end, _home, _altL,
|
||||
-1, _F1, _F2, _F3, _F4, _F5, _F11,
|
||||
0, _braceL_kp, _braceR_kp, _bracketL, _bracketR, 0, _esc,
|
||||
0, _semicolon, _slash, _dash, 0, _colon_kp,
|
||||
2, 0, 0, 0, 0, 0, 0,
|
||||
0, _arrowL, _arrowU, _arrowD, _arrowR,
|
||||
_bs,
|
||||
_del, _ctrlL,
|
||||
_end, _home, _altL,
|
||||
// right hand
|
||||
_F12, _F6, _F7, _F8, _F9, _F10, 0,
|
||||
0, 0, _dash, _lt_kp, _gt_kp, _currencyUnit, 0,
|
||||
|
@ -129,7 +131,7 @@ f_prrel,f_prrel,f_prrel ),
|
|||
// unused
|
||||
NULL,
|
||||
// left hand
|
||||
f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_btldr,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_lm_nu,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel, NULL,
|
||||
|
@ -200,7 +202,7 @@ f_prrel,f_prrel,f_prrel ),
|
|||
// unused
|
||||
NULL,
|
||||
// left hand
|
||||
f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
NULL,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel,
|
||||
f_lm_nu,f_prrel,f_prrel,f_prrel,f_prrel,f_prrel, NULL,
|
||||
|
@ -253,7 +255,7 @@ f_l_iex, NULL, NULL, NULL, NULL, NULL, NULL,
|
|||
f_l_dex, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
f_2kcap, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
f_lm_nu, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
f_btldr, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL )
|
||||
// ----------------------------------------------------------------------------
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include <avr/interrupt.h>
|
||||
#include "lib-other/pjrc/usb_keyboard/usb_keyboard.h"
|
||||
#include "lib/data-types.h"
|
||||
#include "lib/usb/usage-page/keyboard.h"
|
||||
|
@ -364,7 +365,6 @@ void kbfun_2_keys_capslock_press_release( KBFUN_FUNCTION_ARGS ) {
|
|||
* to the overall current layer when the second is released (even if the
|
||||
* first is still pressed)
|
||||
*/
|
||||
#include "usb/usage-page/keyboard.h"
|
||||
void kbfun_layermask_numpad_press_release( KBFUN_FUNCTION_ARGS ) {
|
||||
// define layer mask
|
||||
bool layer_mask[KB_ROWS][KB_COLUMNS] = MATRIX_LAYER(
|
||||
|
@ -411,3 +411,34 @@ void kbfun_layermask_numpad_press_release( KBFUN_FUNCTION_ARGS ) {
|
|||
_layer_set_mask(*current_layer_, layer_mask, current_layers_);
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// public functions (device specific)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void kbfun_jump_to_bootloader( KBFUN_FUNCTION_ARGS ) {
|
||||
|
||||
// from PJRC (slightly modified)
|
||||
// <http://www.pjrc.com/teensy/jump_to_bootloader.html>
|
||||
#if MAKEFILE_BOARD == teensy-2-0
|
||||
// --- for all Teensy boards
|
||||
cli();
|
||||
|
||||
// disable watchdog, if enabled
|
||||
// disable all peripherals
|
||||
UDCON = 1;
|
||||
USBCON = (1<<FRZCLK); // disable USB
|
||||
UCSR1B = 0;
|
||||
_delay_ms(5);
|
||||
|
||||
// --- Teensy 2.0 specific
|
||||
EIMSK = 0; PCICR = 0; SPCR = 0; ACSR = 0; EECR = 0; ADCSRA = 0;
|
||||
TIMSK0 = 0; TIMSK1 = 0; TIMSK3 = 0; TIMSK4 = 0; UCSR1B = 0; TWCR = 0;
|
||||
DDRB = 0; DDRC = 0; DDRD = 0; DDRE = 0; DDRF = 0; TWCR = 0;
|
||||
PORTB = 0; PORTC = 0; PORTD = 0; PORTE = 0; PORTF = 0;
|
||||
asm volatile("jmp 0x7E00");
|
||||
#endif
|
||||
|
||||
// else, function does nothing
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
void kbfun_layer_dec_exec (KBFUN_FUNCTION_ARGS);
|
||||
void kbfun_2_keys_capslock_press_release (KBFUN_FUNCTION_ARGS);
|
||||
void kbfun_layermask_numpad_press_release (KBFUN_FUNCTION_ARGS);
|
||||
void kbfun_jump_to_bootloader (KBFUN_FUNCTION_ARGS);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue