Revised the code according to the suggestions,added readme.md and add one more level of folder <monsgeek>.

This commit is contained in:
jonylee1986 2023-02-17 21:05:06 +08:00
parent bd8f0bb59d
commit 3c9a643bdf
13 changed files with 110 additions and 84 deletions

View File

@ -1,2 +0,0 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = no

View File

@ -30,8 +30,10 @@
#define MATRIX_COLS 21
/* key matrix pins */
#define MATRIX_ROW_PINS {B15, C6, C7, C8, C9, A8}
#define MATRIX_COL_PINS { C1, C2, C3, A0, A1, A2, A3, A4, A5, A6, A7, C4, C5, B0, B1, B2,B10,B11,B12,B13,B14}
#define MATRIX_ROW_PINS \
{ B15, C6, C7, C8, C9, A8 }
#define MATRIX_COL_PINS \
{ C1, C2, C3, A0, A1, A2, A3, A4, A5, A6, A7, C4, C5, B0, B1, B2, B10, B11, B12, B13, B14 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
@ -40,6 +42,12 @@
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 20
/* LED Indicators */
#define LED_NUM_LOCK_PIN A15
#define LED_CAPS_LOCK_PIN C10
// #define LED_SCROLL_LOCK_PIN C11
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

View File

@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
// clang-format off
enum __layers {
WIN_B,
WIN_WASD,
@ -36,7 +36,6 @@ enum custom_keycodes {
#define KC_MCTL KC_MISSION_CONTROL
#define KC_LPAD KC_LAUNCHPAD
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_B] = LAYOUT( /* Base */
@ -91,14 +90,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
// clang-format on
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_WASD] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_WASD] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_MISSION_CONTROL:
if (record->event.pressed) {
host_consumer_send(0x29F);
} else {
host_consumer_send(0);
}
return false; // Skip all further processing of this key
case KC_LAUNCHPAD:
if (record->event.pressed) {
host_consumer_send(0x2A0);
} else {
host_consumer_send(0);
}
return false; // Skip all further processing of this key
#ifdef VIA_ENABLE
case KC_RESET: {
if (record->event.pressed) {
# include "via.h"
via_eeprom_set_valid(false);
eeconfig_init_via();
}
return false;
}
#endif
}
return true;
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {[WIN_B] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [WIN_WASD] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [WIN_FN] = {ENCODER_CCW_CW(RGB_VAI, RGB_VAD)}, [MAC_B] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [MAC_WASD] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [MAC_FN] = {ENCODER_CCW_CW(RGB_VAI, RGB_VAD)}};
#endif

View File

@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
// clang-format off
enum __layers {
WIN_B,
WIN_WASD,
@ -36,7 +36,6 @@ enum custom_keycodes {
#define KC_MCTL KC_MISSION_CONTROL
#define KC_LPAD KC_LAUNCHPAD
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_B] = LAYOUT( /* Base */
@ -91,15 +90,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
// clang-format on
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_MISSION_CONTROL:
if (record->event.pressed) {
host_consumer_send(0x29F);
} else {
host_consumer_send(0);
}
return false; // Skip all further processing of this key
case KC_LAUNCHPAD:
if (record->event.pressed) {
host_consumer_send(0x2A0);
} else {
host_consumer_send(0);
}
return false; // Skip all further processing of this key
#ifdef VIA_ENABLE
case KC_RESET: {
if (record->event.pressed) {
# include "via.h"
via_eeprom_set_valid(false);
eeconfig_init_via();
}
return false;
}
#endif
}
return true;
}
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_WASD] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_WASD] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_FN] = { ENCODER_CCW_CW(RGB_VAI, RGB_VAD) }
};
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {[WIN_B] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [WIN_WASD] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [WIN_FN] = {ENCODER_CCW_CW(RGB_VAI, RGB_VAD)}, [MAC_B] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [MAC_WASD] = {ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, [MAC_FN] = {ENCODER_CCW_CW(RGB_VAI, RGB_VAD)}};
#endif

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = no

View File

@ -255,6 +255,8 @@ led_config_t g_led_config = {
#endif //RGB_MATRIX_ENABLE
#define LED_WIN_LOCK_PIN C11
enum __layers {
WIN_B,
WIN_WASD,
@ -264,18 +266,14 @@ enum __layers {
MAC_FN
};
enum colors { WHITE, RED, GREEN, BLUE };
enum colors led_color_status = WHITE;
enum custom_keycodes {
KC_MISSION_CONTROL = SAFE_RANGE,
KC_LAUNCHPAD,
KC_RESET
enum colors {
WHITE,
RED,
GREEN,
BLUE
};
#define KC_TASK LGUI(KC_TAB)
#define KC_FLXP LGUI(KC_E)
#define KC_MCTL KC_MISSION_CONTROL
#define KC_LPAD KC_LAUNCHPAD
enum colors led_color_status = WHITE;
static bool fn_make_flag = false;
static bool Lkey_flag = false;
@ -287,8 +285,6 @@ static uint8_t glint_cnt = 0;
static uint16_t scancode = 0;
static uint8_t alarm_cnt = 0;
HSV hsv;
void led_test(uint8_t color);
@ -321,13 +317,12 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
void led_init_ports(void){
//set our LED pings as output
setPinOutput(A15); // LED1 Num Lock
writePinHigh(A15);
setPinOutput(C10); // LDE2 Caps Lock
writePinHigh(C10);
setPinOutput(C11); // LED3 Win Lock
writePinHigh(C11);
setPinOutput(LED_NUM_LOCK_PIN); // LED1 Num Lock
writePinHigh(LED_NUM_LOCK_PIN);
setPinOutput(LED_CAPS_LOCK_PIN); // LDE2 Caps Lock
writePinHigh(LED_CAPS_LOCK_PIN);
setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock
writePinHigh(LED_WIN_LOCK_PIN);
}
bool led_update_kb(led_t led_state) {
@ -338,46 +333,13 @@ bool led_update_kb(led_t led_state) {
// it low/0 turns it on, and high/1 turns the LED off.
// This behavior depends on whether the LED is between the pin
// and VCC or the pin and GND.
writePin(A15, led_state.num_lock);
writePin(C10, led_state.caps_lock);
writePin(C11, keymap_config.no_gui);
writePin(LED_NUM_LOCK_PIN, led_state.num_lock);
writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock);
writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui);
}
return res;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_MISSION_CONTROL:
if (record->event.pressed) {
host_consumer_send(0x29F);
} else {
host_consumer_send(0);
}
return false; // Skip all further processing of this key
case KC_LAUNCHPAD:
if (record->event.pressed) {
host_consumer_send(0x2A0);
} else {
host_consumer_send(0);
}
return false; // Skip all further processing of this key
#ifdef VIA_ENABLE
case KC_RESET: {
if (record->event.pressed) {
#include "via.h"
via_eeprom_set_valid(false);
eeconfig_init_via();
}
return false;
}
#endif
}
return true;
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) {
return false;
@ -460,7 +422,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
alarm_flag = true;
rgb_matrix_toggle_noeeprom();
current_time = timer_read();
writePin(C11, !keymap_config.no_gui);
writePin(LED_WIN_LOCK_PIN, !keymap_config.no_gui);
}
return true;
case RGB_VAI:
@ -496,7 +458,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
}
}
void matrix_scan_kb(void) {
void housekeeping_task_kb(void) {
if(Lkey_flag){
if(scancode == KC_GRV){
if (timer_elapsed(current_time) >= 3000) {

View File

@ -0,0 +1,16 @@
# monsgeek m2
A customizable 98-key keyboard
* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986)
* Hardware Supported: monsgeek m2
Make example for this keyboard (after setting up your build environment):
make hfdkb/monsgeek/m2:default
make hfdkb/monsgeek/m2:via
**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@ -18,4 +18,3 @@ EEPROM_DRIVER = wear_leveling
WEAR_LEVELING_DRIVER = spi_flash
#RGB_MATRIX_CUSTOM_USER = yes #Add turnoff LED