forked from mirrors/qmk_userspace
		
	update to driver separation
This commit is contained in:
		
				commit
				
					
						dc7d0c7b74
					
				
			
		
					 13 changed files with 259 additions and 30 deletions
				
			
		| 
						 | 
					@ -93,10 +93,13 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
 | 
					ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
 | 
				
			||||||
    OPT_DEFS += -DRGBLIGHT_ENABLE
 | 
					    OPT_DEFS += -DRGBLIGHT_ENABLE
 | 
				
			||||||
    SRC += ws2812.c
 | 
					 | 
				
			||||||
    SRC += $(QUANTUM_DIR)/rgblight.c
 | 
					 | 
				
			||||||
    CIE1931_CURVE = yes
 | 
					    CIE1931_CURVE = yes
 | 
				
			||||||
    LED_BREATHING_TABLE = yes
 | 
					    LED_BREATHING_TABLE = yes
 | 
				
			||||||
 | 
					    ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
 | 
				
			||||||
 | 
					        OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        SRC += ws2812.c
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
 | 
					ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,23 +28,7 @@
 | 
				
			||||||
//#include "ws2812_config.h"
 | 
					//#include "ws2812_config.h"
 | 
				
			||||||
//#include "i2cmaster.h"
 | 
					//#include "i2cmaster.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef RGBW
 | 
					#include "rgblight_types.h"
 | 
				
			||||||
  #define LED_TYPE struct cRGBW
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
  #define LED_TYPE struct cRGB
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 *  Structure of the LED array
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * cRGB:     RGB  for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106
 | 
					 | 
				
			||||||
 * cRGBW:    RGBW for SK6812RGBW
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct cRGB  { uint8_t g; uint8_t r; uint8_t b; };
 | 
					 | 
				
			||||||
struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* User Interface
 | 
					/* User Interface
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#define MATRIX_ROWS 8
 | 
					#define MATRIX_ROWS 8
 | 
				
			||||||
#define MATRIX_COLS 15
 | 
					#define MATRIX_COLS 15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define RGBLED_NUM 16
 | 
				
			||||||
 | 
					#define RGBLIGHT_ANIMATIONS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define NO_UART 1
 | 
					#define NO_UART 1
 | 
				
			||||||
#define BOOTLOADHID_BOOTLOADER 1
 | 
					#define BOOTLOADHID_BOOTLOADER 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										104
									
								
								keyboards/ps2avrGB/i2c.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								keyboards/ps2avrGB/i2c.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,104 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 Luiz Ribeiro <luizribeiro@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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 <avr/io.h>
 | 
				
			||||||
 | 
					#include <util/twi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "i2c.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void i2c_set_bitrate(uint16_t bitrate_khz) {
 | 
				
			||||||
 | 
					    uint8_t bitrate_div = ((F_CPU / 1000l) / bitrate_khz);
 | 
				
			||||||
 | 
					    if (bitrate_div >= 16) {
 | 
				
			||||||
 | 
					        bitrate_div = (bitrate_div - 16) / 2;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    TWBR = bitrate_div;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void i2c_init(void) {
 | 
				
			||||||
 | 
					    // set pull-up resistors on I2C bus pins
 | 
				
			||||||
 | 
					    PORTC |= 0b11;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    i2c_set_bitrate(400);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // enable TWI (two-wire interface)
 | 
				
			||||||
 | 
					    TWCR |= (1 << TWEN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // enable TWI interrupt and slave address ACK
 | 
				
			||||||
 | 
					    TWCR |= (1 << TWIE);
 | 
				
			||||||
 | 
					    TWCR |= (1 << TWEA);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t i2c_start(uint8_t address) {
 | 
				
			||||||
 | 
					    // reset TWI control register
 | 
				
			||||||
 | 
					    TWCR = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // begin transmission and wait for it to end
 | 
				
			||||||
 | 
					    TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
 | 
				
			||||||
 | 
					    while (!(TWCR & (1<<TWINT)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // check if the start condition was successfully transmitted
 | 
				
			||||||
 | 
					    if ((TWSR & 0xF8) != TW_START) {
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // transmit address and wait
 | 
				
			||||||
 | 
					    TWDR = address;
 | 
				
			||||||
 | 
					    TWCR = (1<<TWINT) | (1<<TWEN);
 | 
				
			||||||
 | 
					    while (!(TWCR & (1<<TWINT)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // check if the device has acknowledged the READ / WRITE mode
 | 
				
			||||||
 | 
					    uint8_t twst = TW_STATUS & 0xF8;
 | 
				
			||||||
 | 
					    if ((twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK)) {
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void i2c_stop(void) {
 | 
				
			||||||
 | 
					    TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t i2c_write(uint8_t data) {
 | 
				
			||||||
 | 
					    TWDR = data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // transmit data and wait
 | 
				
			||||||
 | 
					    TWCR = (1<<TWINT) | (1<<TWEN);
 | 
				
			||||||
 | 
					    while (!(TWCR & (1<<TWINT)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((TWSR & 0xF8) != TW_MT_DATA_ACK) {
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t i2c_send(uint8_t address, uint8_t *data, uint16_t length) {
 | 
				
			||||||
 | 
					    if (i2c_start(address)) {
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (uint16_t i = 0; i < length; i++) {
 | 
				
			||||||
 | 
					        if (i2c_write(data[i])) {
 | 
				
			||||||
 | 
					            return 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    i2c_stop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								keyboards/ps2avrGB/i2c.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								keyboards/ps2avrGB/i2c.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2016 Luiz Ribeiro <luizribeiro@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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 __I2C_H__
 | 
				
			||||||
 | 
					#define __I2C_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void i2c_init(void);
 | 
				
			||||||
 | 
					void i2c_set_bitrate(uint16_t bitrate_khz);
 | 
				
			||||||
 | 
					uint8_t i2c_send(uint8_t address, uint8_t *data, uint16_t length);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -16,17 +16,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ps2avrGB.h"
 | 
					#include "ps2avrGB.h"
 | 
				
			||||||
 | 
					#include "action_layer.h"
 | 
				
			||||||
 | 
					#include "rgblight.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
    KC_KEYMAP(
 | 
					    [0] = KEYMAP(
 | 
				
			||||||
        ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, PSCR,HOME,END,
 | 
					        KC_ESC, KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9,  KC_F10, KC_F11, KC_F12, KC_PSCR,KC_HOME,KC_END,
 | 
				
			||||||
        GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     DEL,
 | 
					        KC_GRV, KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_MINS,KC_EQL, KC_BSPC,        KC_DEL,
 | 
				
			||||||
        TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS,     INS,
 | 
					        KC_TAB, KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,   KC_LBRC,KC_RBRC,KC_BSLS,        KC_INS,
 | 
				
			||||||
        CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,ENT,           PGUP,
 | 
					        KC_FN0, KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,KC_ENT,                 KC_PGUP,
 | 
				
			||||||
        LSFT,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,RSFT,          UP,  PGDN,
 | 
					        KC_LSFT,KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,                KC_UP,  KC_PGDN,
 | 
				
			||||||
        LCTL,LALT,LGUI,          SPC,                     RGUI,RALT,RCTL,LEFT,DOWN,RGHT
 | 
					        KC_LCTL,KC_LALT,KC_LGUI,                KC_SPC,                                 KC_RGUI,KC_RALT,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT
 | 
				
			||||||
    )
 | 
					    ),
 | 
				
			||||||
 | 
					    [1] = KEYMAP(
 | 
				
			||||||
 | 
					        KC_TRNS,RGB_TOG,RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_HUD,RGB_SAD,RGB_VAD,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_END,
 | 
				
			||||||
 | 
					        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,        KC_DEL,
 | 
				
			||||||
 | 
					        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,        KC_INS,
 | 
				
			||||||
 | 
					        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                KC_TRNS,
 | 
				
			||||||
 | 
					        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                KC_TRNS,KC_TRNS,
 | 
				
			||||||
 | 
					        KC_TRNS,KC_TRNS,KC_TRNS,                KC_TRNS,                                KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_RGHT
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM fn_actions[] = {
 | 
					const uint16_t PROGMEM fn_actions[] = {
 | 
				
			||||||
 | 
					  [0]  = ACTION_LAYER_MOMENTARY(1),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,6 +93,8 @@ uint8_t matrix_scan(void) {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    matrix_scan_user();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 1;
 | 
					    return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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 "ps2avrGB.h"
 | 
				
			||||||
 | 
					#include "rgblight.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <avr/pgmspace.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "action_layer.h"
 | 
				
			||||||
 | 
					#include "i2c.h"
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern rgblight_config_t rgblight_config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void rgblight_set(void) {
 | 
				
			||||||
 | 
					    if (!rgblight_config.enable) {
 | 
				
			||||||
 | 
					        for (uint8_t i = 0; i < RGBLED_NUM; i++) {
 | 
				
			||||||
 | 
					            led[i].r = 0;
 | 
				
			||||||
 | 
					            led[i].g = 0;
 | 
				
			||||||
 | 
					            led[i].b = 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    i2c_init();
 | 
				
			||||||
 | 
					    i2c_send(0xb0, (uint8_t*)led, 3 * RGBLED_NUM);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__attribute__ ((weak))
 | 
				
			||||||
 | 
					void matrix_scan_user(void) {
 | 
				
			||||||
 | 
					    rgblight_task();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#ifndef KEYMAP_COMMON_H
 | 
					#ifndef KEYMAP_COMMON_H
 | 
				
			||||||
#define KEYMAP_COMMON_H
 | 
					#define KEYMAP_COMMON_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum_keycodes.h"
 | 
				
			||||||
#include "keycode.h"
 | 
					#include "keycode.h"
 | 
				
			||||||
#include "action.h"
 | 
					#include "action.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,6 @@ PROTOCOL = VUSB
 | 
				
			||||||
# unsupported features for now
 | 
					# unsupported features for now
 | 
				
			||||||
NO_UART = yes
 | 
					NO_UART = yes
 | 
				
			||||||
NO_SUSPEND_POWER_DOWN = yes
 | 
					NO_SUSPEND_POWER_DOWN = yes
 | 
				
			||||||
BACKLIGHT_ENABLE = no
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# processor frequency
 | 
					# processor frequency
 | 
				
			||||||
F_CPU = 12000000
 | 
					F_CPU = 12000000
 | 
				
			||||||
| 
						 | 
					@ -31,13 +30,16 @@ MOUSEKEY_ENABLE = yes
 | 
				
			||||||
EXTRAKEY_ENABLE = yes
 | 
					EXTRAKEY_ENABLE = yes
 | 
				
			||||||
CONSOLE_ENABLE = yes
 | 
					CONSOLE_ENABLE = yes
 | 
				
			||||||
COMMAND_ENABLE = yes
 | 
					COMMAND_ENABLE = yes
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = no
 | 
				
			||||||
 | 
					RGBLIGHT_ENABLE = yes
 | 
				
			||||||
 | 
					RGBLIGHT_CUSTOM_DRIVER = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_DEFS = -DDEBUG_LEVEL=0
 | 
					OPT_DEFS = -DDEBUG_LEVEL=0
 | 
				
			||||||
OPT_DEFS += -DBOOTLOADER_SIZE=2048
 | 
					OPT_DEFS += -DBOOTLOADER_SIZE=2048
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# custom matrix setup
 | 
					# custom matrix setup
 | 
				
			||||||
CUSTOM_MATRIX = yes
 | 
					CUSTOM_MATRIX = yes
 | 
				
			||||||
SRC = matrix.c
 | 
					SRC = matrix.c i2c.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# programming options
 | 
					# programming options
 | 
				
			||||||
PROGRAM_CMD = ./keyboards/ps2avrGB/program $(TARGET).hex
 | 
					PROGRAM_CMD = ./keyboards/ps2avrGB/program $(TARGET).hex
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -373,7 +373,7 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) {
 | 
				
			||||||
  rgblight_set();
 | 
					  rgblight_set();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__attribute__ ((weak))
 | 
					#ifndef RGBLIGHT_CUSTOM_DRIVER
 | 
				
			||||||
void rgblight_set(void) {
 | 
					void rgblight_set(void) {
 | 
				
			||||||
  if (rgblight_config.enable) {
 | 
					  if (rgblight_config.enable) {
 | 
				
			||||||
    #ifdef RGBW
 | 
					    #ifdef RGBW
 | 
				
			||||||
| 
						 | 
					@ -394,6 +394,7 @@ void rgblight_set(void) {
 | 
				
			||||||
    #endif
 | 
					    #endif
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef RGBLIGHT_ANIMATIONS
 | 
					#ifdef RGBLIGHT_ANIMATIONS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,7 +62,10 @@
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include "eeconfig.h"
 | 
					#include "eeconfig.h"
 | 
				
			||||||
 | 
					#ifndef RGBLIGHT_CUSTOM_DRIVER
 | 
				
			||||||
#include "ws2812.h"
 | 
					#include "ws2812.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#include "rgblight_types.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern LED_TYPE led[RGBLED_NUM];
 | 
					extern LED_TYPE led[RGBLED_NUM];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										45
									
								
								quantum/rgblight_types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								quantum/rgblight_types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * light weight WS2812 lib include
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version 2.3  - Nev 29th 2015
 | 
				
			||||||
 | 
					 * Author: Tim (cpldcpu@gmail.com)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Please do not change this file! All configuration is handled in "ws2812_config.h"
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * 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 RGBLIGHT_TYPES
 | 
				
			||||||
 | 
					#define RGBLIGHT_TYPES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <avr/io.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef RGBW
 | 
				
			||||||
 | 
					  #define LED_TYPE struct cRGBW
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  #define LED_TYPE struct cRGB
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Structure of the LED array
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * cRGB:     RGB  for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106
 | 
				
			||||||
 | 
					 * cRGBW:    RGBW for SK6812RGBW
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct cRGB  { uint8_t g; uint8_t r; uint8_t b; };
 | 
				
			||||||
 | 
					struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue