You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							68 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							68 lines
						
					
					
						
							1.5 KiB
						
					
					
				#include "gamenum.h"
 | 
						|
#include "action_layer.h"
 | 
						|
#include "eeconfig.h"
 | 
						|
 | 
						|
 | 
						|
#define _______ KC_TRNS
 | 
						|
 | 
						|
#define DEF 0
 | 
						|
#define HDN 1
 | 
						|
#define OSY 2
 | 
						|
 | 
						|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
						|
[DEF] = KEYMAP(
 | 
						|
  KC_FN0,   KC_SLSH, KC_ASTR, KC_MINS, \
 | 
						|
  KC_7,      KC_8,       KC_9,       KC_PLUS, \
 | 
						|
  KC_4,      KC_5,       KC_6, \
 | 
						|
  KC_1,      KC_2,       KC_3, \
 | 
						|
  KC_0,      KC_DOT,  KC_ENT \
 | 
						|
),
 | 
						|
[HDN] = KEYMAP(
 | 
						|
  KC_FN1,   KC_1,  	KC_2,   	KC_3,  \
 | 
						|
  KC_Q,      KC_W, 	KC_E,   	KC_R, \
 | 
						|
  KC_A,      KC_S,  	KC_D, \
 | 
						|
  KC_Z,      KC_X,  	KC_C, \
 | 
						|
  KC_LSFT, KC_LALT,  KC_SPC \
 | 
						|
),
 | 
						|
[OSY] = KEYMAP(
 | 
						|
  KC_A,    	KC_Q, 	KC_1, 	KC_FN2, \
 | 
						|
  KC_S,    	KC_W, 	KC_2, 	KC_LALT, \
 | 
						|
  KC_D,    	KC_E, 	KC_3, \
 | 
						|
  KC_F,   	KC_R, 	KC_4, \
 | 
						|
  KC_SPC, KC_T, 	KC_TAB \
 | 
						|
)
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
const uint16_t PROGMEM fn_actions[] = {
 | 
						|
		[0] = ACTION_LAYER_SET(HDN, ON_PRESS),
 | 
						|
		[1] = ACTION_LAYER_SET(OSY, ON_PRESS),
 | 
						|
		[2] = ACTION_LAYER_SET(DEF, ON_PRESS),
 | 
						|
};
 | 
						|
 | 
						|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
						|
  return MACRO_NONE;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
bool process_record_user (uint16_t keycode, keyrecord_t *record) {
 | 
						|
  switch(keycode) {
 | 
						|
  case KC_FN0:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        PORTC |= (1 << 6); // PC6 goes high 
 | 
						|
     }
 | 
						|
     break;
 | 
						|
  case KC_FN1:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        PORTC &= ~(1 << 6); // PC6 goes high 
 | 
						|
		PORTD |= (1<<4);
 | 
						|
     }
 | 
						|
     break;
 | 
						|
  case KC_FN2:
 | 
						|
      if (record->event.pressed) {
 | 
						|
        PORTD &= ~(1 << 4); // PC6 goes high 
 | 
						|
     }
 | 
						|
     break;
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
} |