Moved led page arrays to keymap.c and added keymap header to define
individual led addresses
This commit is contained in:
		
							parent
							
								
									56be300757
								
							
						
					
					
						commit
						af13e9a12d
					
				
					 3 changed files with 152 additions and 57 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
#include "infinity60.h"
 | 
			
		||||
#include "led_controller.h"
 | 
			
		||||
#include "keymap_jpetermans.h"
 | 
			
		||||
 | 
			
		||||
//Helpful Defines
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
| 
						 | 
				
			
			@ -86,6 +87,66 @@ enum function_id {
 | 
			
		|||
enum macro_id {
 | 
			
		||||
    ACTION_LEDS_ALL,
 | 
			
		||||
    ACTION_LEDS_GAME
 | 
			
		||||
//TODO: ACTION_LED_LAYER which reads current layer and turns on appropriate LED
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
   Configuring led control can be done
 | 
			
		||||
   1. full keyboard at a time - define led array, or
 | 
			
		||||
   2. individual - send specific led address (defined in keymap.h)
 | 
			
		||||
 | 
			
		||||
    The arrays relate to the mcu's LED pages (8 available) desribed in led_controller.c
 | 
			
		||||
    0x24 (pcb row 1) is first byte of PWM portion of LED page
 | 
			
		||||
    0x34 (pcb row 2) is 17th byte of PWM portion of LED page
 | 
			
		||||
    array translates to row and column positions
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 Infinity60 LED MAP
 | 
			
		||||
  11 12 13 14 15 16 17 18 21 22 23 24 25  26 27*
 | 
			
		||||
   28 31 32 33 34 35 36 37 38 41 42 43 44 45
 | 
			
		||||
   46 47 48 51 52 53 54 55 56 57 58 61    62
 | 
			
		||||
    63 64 65 66 67 68 71 72 73 74 75      76 77*
 | 
			
		||||
  78  81  82       83         84  85  86  87
 | 
			
		||||
*Unused in Alphabet Layout
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
//"WASD"
 | 
			
		||||
const uint8_t led_game[72] = {
 | 
			
		||||
  0x24,
 | 
			
		||||
  0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
  0x34,
 | 
			
		||||
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
  0x44,
 | 
			
		||||
  0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
  0x54,
 | 
			
		||||
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
 | 
			
		||||
  0x64,
 | 
			
		||||
  0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
  0x74,
 | 
			
		||||
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
  0x84,
 | 
			
		||||
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
  0x94,
 | 
			
		||||
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint8_t led_all[72] = {
 | 
			
		||||
  0x24,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x34,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x44,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x54,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x64,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x74,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x84,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
  0x94,
 | 
			
		||||
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t fn_actions[] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -94,13 +155,6 @@ const uint16_t fn_actions[] = {
 | 
			
		|||
    [2] = ACTION_FUNCTION(ACTION_LEDS_ALL),
 | 
			
		||||
    [3] = ACTION_FUNCTION(ACTION_LEDS_GAME)
 | 
			
		||||
 | 
			
		||||
/*    [1] = ACTION_FUNCTION(ACTION_LEDS_GAME),
 | 
			
		||||
 | 
			
		||||
    [4] = ACTION_USAGE_CONSUMER(0x1B4),
 | 
			
		||||
    [5] = ACTION_USAGE_CONSUMER(0x196),
 | 
			
		||||
    [6] = ACTION_USAGE_CONSUMER(0x1A6),
 | 
			
		||||
    [7] = ACTION_USAGE_CONSUMER(0x1A0)
 | 
			
		||||
*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* custom action function */
 | 
			
		||||
| 
						 | 
				
			
			@ -140,7 +194,19 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
 | 
			
		||||
// Runs just one time when the keyboard initializes.
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
    uint8_t j;
 | 
			
		||||
 | 
			
		||||
    led_controller_init();
 | 
			
		||||
 | 
			
		||||
//TODO: do pages need to be written at init or ok on demand?
 | 
			
		||||
  /* Write pages */
 | 
			
		||||
  for(j=0; j<8; j++) {
 | 
			
		||||
    is31_write_data(1,(uint8_t *)(led_game+(9*j)),9);
 | 
			
		||||
    chThdSleepMilliseconds(5);
 | 
			
		||||
    is31_write_data(2,(uint8_t *)(led_all+(9*j)),9);
 | 
			
		||||
    chThdSleepMilliseconds(5);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Runs constantly in the background, in a loop.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										78
									
								
								keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								keyboards/infinity60/keymaps/jpetermans/keymap_jpetermans.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,78 @@
 | 
			
		|||
/* LED layout mainly based on default Standard configuration
 | 
			
		||||
     * ,-----------------------------------------------------------.
 | 
			
		||||
     * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| \ | ` |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| Bksp|
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Enter   |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift |Fn0|
 | 
			
		||||
     * |-----------------------------------------------------------'
 | 
			
		||||
     * | LCtl|LGui|LAlt |        Space       | RAlt|RGui|RMenu|RCtl|
 | 
			
		||||
     * `-----------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define ADDR_LED_ESC  0x24
 | 
			
		||||
#define ADDR_LED_1    0x25
 | 
			
		||||
#define ADDR_LED_2    0x26
 | 
			
		||||
#define ADDR_LED_3    0x27
 | 
			
		||||
#define ADDR_LED_4    0x28
 | 
			
		||||
#define ADDR_LED_5    0x29
 | 
			
		||||
#define ADDR_LED_6    0x2A
 | 
			
		||||
#define ADDR_LED_7    0x2B
 | 
			
		||||
#define ADDR_LED_8    0x34
 | 
			
		||||
#define ADDR_LED_9    0x35
 | 
			
		||||
#define ADDR_LED_0    0x36
 | 
			
		||||
#define ADDR_LED_MINS 0x37
 | 
			
		||||
#define ADDR_LED_EQL  0x38
 | 
			
		||||
#define ADDR_LED_BSLS 0x39
 | 
			
		||||
//#define ADDR_LED_GRV  0x3A //not used by Alphabet layout
 | 
			
		||||
#define ADDR_LED_TAB  0x3B
 | 
			
		||||
#define ADDR_LED_Q    0x44
 | 
			
		||||
#define ADDR_LED_W    0x45
 | 
			
		||||
#define ADDR_LED_E    0x46
 | 
			
		||||
#define ADDR_LED_R    0x47
 | 
			
		||||
#define ADDR_LED_T    0x48
 | 
			
		||||
#define ADDR_LED_Y    0x49
 | 
			
		||||
#define ADDR_LED_U    0x4A
 | 
			
		||||
#define ADDR_LED_I    0x4B
 | 
			
		||||
#define ADDR_LED_O    0x54
 | 
			
		||||
#define ADDR_LED_P    0x55
 | 
			
		||||
#define ADDR_LED_LBRC 0x56
 | 
			
		||||
#define ADDR_LED_RBRC 0x57
 | 
			
		||||
#define ADDR_LED_BSPC 0x58
 | 
			
		||||
#define ADDR_LED_CAPS 0x59
 | 
			
		||||
#define ADDR_LED_A    0x5A
 | 
			
		||||
#define ADDR_LED_S    0x5B
 | 
			
		||||
#define ADDR_LED_D    0x64
 | 
			
		||||
#define ADDR_LED_F    0x65
 | 
			
		||||
#define ADDR_LED_G    0x66
 | 
			
		||||
#define ADDR_LED_H    0x67
 | 
			
		||||
#define ADDR_LED_J    0x68
 | 
			
		||||
#define ADDR_LED_K    0x69
 | 
			
		||||
#define ADDR_LED_L    0x6A
 | 
			
		||||
#define ADDR_LED_SCLN 0x6B
 | 
			
		||||
#define ADDR_LED_QUOT 0x74
 | 
			
		||||
#define ADDR_LED_ENT  0x75
 | 
			
		||||
#define ADDR_LED_LSFT 0x76
 | 
			
		||||
#define ADDR_LED_Z    0x77
 | 
			
		||||
#define ADDR_LED_X    0x78
 | 
			
		||||
#define ADDR_LED_C    0x79
 | 
			
		||||
#define ADDR_LED_V    0x7A
 | 
			
		||||
#define ADDR_LED_B    0x7B
 | 
			
		||||
#define ADDR_LED_N    0x84
 | 
			
		||||
#define ADDR_LED_M    0x85
 | 
			
		||||
#define ADDR_LED_COMM 0x86
 | 
			
		||||
#define ADDR_LED_DOT  0x87
 | 
			
		||||
#define ADDR_LED_SLSH 0x88
 | 
			
		||||
#define ADDR_LED_RSFT 0x89
 | 
			
		||||
//#define ADDR_LED_FN0  0x8A //not used by Alphabet layout
 | 
			
		||||
#define ADDR_LED_LCTL 0x8B
 | 
			
		||||
#define ADDR_LED_LGUI 0x94
 | 
			
		||||
#define ADDR_LED_LALT 0x95
 | 
			
		||||
#define ADDR_LED_SPC  0x96
 | 
			
		||||
#define ADDR_LED_RALT 0x97
 | 
			
		||||
#define ADDR_LED_RGUI 0x98
 | 
			
		||||
#define ADDR_LED_MENU 0x99
 | 
			
		||||
#define ADDR_LED_RCTL 0x9A
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue