First Commit

Firsts non previously commited changes:
-Changed to keyboards/handwired
-Basic credit to Xydane
-70% Layout
pull/4126/head
fpazos 7 years ago
parent bba0bcfb4e
commit 0aa48ed76f

@ -0,0 +1,9 @@
/* B3 A15 A10 A9 A8 B15 B14 B13 B12 B11 B10 B1 B0 A7 A6
B9 ESC| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| F11| F12| PSC| PGU| PGD
B8 GRA| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ¡ | BCKS | DEL
B7 TAB| Q | W | E | R | T | Y | U | I | O | P | ` | + | | HOM
B6 º (CAP| A | S | D | F | G | H | J | K | L | Ñ | ´ | Ç | ENTER | END
B5 LSI| < | Z | X | C | V | B | N | M | , | . | - | RSHIF | UP | FNL
B4 LCT| WIN| ALT| ESPACE | ALG| FN | RCT| LEF| DOW| RIG
*/

@ -0,0 +1,9 @@
PA2 - Alternate output (USART2 TX)
PA3 - Normal input (USART2 RX)
PA9 - Alternate output (USART1 TX)
PA10 - Normal input (USART1 RX)
PA11 - (USB D-)
PA12 - (USB D+)
PB10 - Push Pull output (USB switch).
PC13 - Push Pull output (LED)

@ -48,6 +48,10 @@
#define GPIOD_OSC_IN 0
#define GPIOD_OSC_OUT 1
/* Backlighting */
/*
#define GPIOB_BACKLIGHT_PIN 1*/
/* In case your board has a "USB enable" hardware
controlled by a pin, define it here. (It could be just
a 1.5k resistor connected to D+ line.)

@ -6,6 +6,16 @@
// Modified by Xydane
// Original:
// #define LAYOUT(k00) {{ k00 }}
/*
ESC| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| F11| F12| PSC| PGU| PGD
GRA| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ' | ¡ | BCKS | DEL
TAB| Q | W | E | R | T | Y | U | I | O | P | ` | + | | HOM
CAP| A | S | D | F | G | H | J | K | L | Ñ | ´ | Ç | ENTER | END
LSI| < | Z | X | C | V | B | N | M | , | . | - | RSHIF | UP | FNL
LCT| WIN| ALT| ESPACE | ALG| FN | RCT| LEF| DOW| RIG
*/
#define KEYMAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \

@ -34,7 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key matrix size */
// Modified by Xydane
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
#define MATRIX_COLS 15
#define DIODE_DIRECTION COL2ROW
/* define if matrix has ghost */
@ -45,17 +45,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEBOUNCE 1
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
//#define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* Backlighting include */
/*#define BACKLIGHT_PIN 19
#define BACKLIGHT_LEVELS 5
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6*/
/*
* Feature disable options
* These options are also useful to firmware size reduction.

@ -20,37 +20,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Highly Modified by Xydane
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP(
KC_ESC, 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_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_BSLASH, \
KC_CAPS, 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_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_RCTL, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(1), F(0), KC_LEFT, KC_DOWN, KC_RIGHT ),
KEYMAP(
KC_GRAVE, 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_DELETE, \
KC_TRNS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDOWN, KC_PSCREEN, KC_SCROLLLOCK, KC_PAUSE, KC_INSERT, \
KC_TRNS, KC_AUDIO_VOL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SCLN, KC_QUOT, KC_ENT, \
KC_TRNS, KC_AUDIO_VOL_DOWN, F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, RESET, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END ),
KEYMAP(
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_MS_BTN4, KC_MS_BTN5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_MS_WH_UP, KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, KC_MS_WH_DOWN, 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_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_PSCREEN, KC_PGUP, KC_PGDOWN, \
KC_GRAVE, 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_DELETE, \
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_PGUP, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, K3C, K3D, KC_PGDOWN, \
KC_LSFT, KC_NUBS,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_INS, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RALT(kc), K55, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ),
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
[1] = ACTION_LAYER_TOGGLE(2), // to Fn overlay
[2] = ACTION_FUNCTION(2),
KEYMAP(
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_PSCREEN, KC_PGUP, KC_PGDOWN, \
KC_GRAVE, 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_DELETE, \
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_PGUP, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, K3C, K3D, KC_PGDOWN, \
KC_LSFT, KC_NUBS,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_INS, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RALT(kc), K55, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch (id) {
case 2:
if (record->event.pressed) {
palTogglePad(GPIOB, 1);
}
break;
}
}

@ -0,0 +1,56 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@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 "chibios_test.h"
// Highly Modified by Xydane
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP(
KC_ESC, 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_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_BSLASH, \
KC_CAPS, 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_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_RCTL, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(1), F(0), KC_LEFT, KC_DOWN, KC_RIGHT ),
KEYMAP(
KC_GRAVE, 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_DELETE, \
KC_TRNS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDOWN, KC_PSCREEN, KC_SCROLLLOCK, KC_PAUSE, KC_INSERT, \
KC_TRNS, KC_AUDIO_VOL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SCLN, KC_QUOT, KC_ENT, \
KC_TRNS, KC_AUDIO_VOL_DOWN, F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, RESET, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END ),
KEYMAP(
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_MS_BTN4, KC_MS_BTN5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_MS_WH_UP, KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, KC_MS_WH_DOWN, 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 ),
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
[1] = ACTION_LAYER_TOGGLE(2), // to Fn overlay
[2] = ACTION_FUNCTION(2),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch (id) {
case 2:
if (record->event.pressed) {
palTogglePad(GPIOB, 1);
}
break;
}
}

@ -0,0 +1,56 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@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 "keymap_extras/keymap_spanish.h"
#include "chibios_test.h"
#define LSPO_KEY ES_LPRN
#define RSPC_KEY ES_RPRN
// Highly Modified by Xydane
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP(
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_PSCREEN,KC_HOME, KC_END, \
KC_GRAVE, 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_DELETE, \
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_PGUP, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NUHS, KC_ENT,KC_PGDOWN, \
KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_UP, F(1), \
KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,F(2), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ),
KEYMAP(
KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE,KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_P7, KC_P8, KC_P9, 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_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_P1, KC_P2, KC_P3, KC_PAST, 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_P0, KC_PDOT,KC_PENT, KC_PSLS, 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 ),
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
//[1] = ACTION_LAYER_TOGGLE(2), // to Fn overlay
[2] = ACTION_FUNCTION(2),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch (id) {
case 2:
if (record->event.pressed) {
palTogglePad(GPIOA, 1);
}
break;
}
}

@ -5,6 +5,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
MOUSEKEY_ENABLE = yes
MOUSEKEY_ENABLE = no
DEFAULT_FOLDER = chibios_test/stm32_f103_onekey
DEFAULT_FOLDER = handwired/stm32/stm32

@ -25,19 +25,34 @@ void led_set(uint8_t usb_led)
/* generic STM32F103C8T6 board */
#ifdef BOARD_GENERIC_STM32_F103
palClearPad(GPIOC, 13);
#endif
/* Maple Mini */
#ifdef BOARD_MAPLEMINI_STM32_F103
palSetPad(GPIOB, 1);
#endif
} else {
/* generic STM32F103C8T6 board */
#ifdef BOARD_GENERIC_STM32_F103
palSetPad(GPIOC, 13);
#endif
/* Maple Mini */
#ifdef BOARD_MAPLEMINI_STM32_F103
palClearPad(GPIOB,1);
#endif
}
}
/* New leds configuration, decided to put here */
/*uint32_t layer_state_set_user(uint32_t state) {
switch (biton32(state)) {
case _RAISE:
rgblight_setrgb (0x00, 0x00, 0xFF);
break;
case _LOWER:
rgblight_setrgb (0xFF, 0x00, 0x00);
break;
case _PLOVER:
rgblight_setrgb (0x00, 0xFF, 0x00);
break;
case _ADJUST:
rgblight_setrgb (0x7A, 0x00, 0xFF);
break;
default: // for any other layers, or the default layer
rgblight_setrgb (0x00, 0xFF, 0xFF);
break;
}
return state;
}*/

@ -56,16 +56,9 @@ uint8_t matrix_cols(void)
/* generic STM32F103C8T6 board */
#ifdef BOARD_GENERIC_STM32_F103
#define LED_ON() do { palClearPad(GPIOB, 1) ;} while (0)
#define LED_OFF() do { palSetPad(GPIOB, 1); } while (0)
#define LED_TGL() do { palTogglePad(GPIOB, 1); } while (0)
#endif
/* Maple Mini */
#ifdef BOARD_MAPLEMINI_STM32_F103
#define LED_ON() do { palSetPad(GPIOB, 1) ;} while (0)
#define LED_OFF() do { palClearPad(GPIOB, 1); } while (0)
#define LED_TGL() do { palTogglePad(GPIOB, 1); } while (0)
#define LED_ON() do { palClearPad(GPIOA, 1) ;} while (0)
#define LED_OFF() do { palSetPad(GPIOA, 1); } while (0)
#define LED_TGL() do { palTogglePad(GPIOA, 1); } while (0)
#endif
void matrix_init(void)
@ -143,28 +136,42 @@ void matrix_print(void)
// Modified by Xydane
static void init_cols(void)
{
palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 1, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 9, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 8, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 15, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 14, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 13, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 12, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 11, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 10, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 7, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 0, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLUP);
}
/* Returns status of switches(1:on, 0:off) */
// Modified by Xydane
static matrix_row_t read_cols(void)
{
return ((palReadPad(GPIOA, 6)==PAL_HIGH) ? 0 : (1<<0))
| ((palReadPad(GPIOA, 2)==PAL_HIGH) ? 0 : (1<<1))
| ((palReadPad(GPIOA, 4)==PAL_HIGH) ? 0 : (1<<2))
| ((palReadPad(GPIOA, 5)==PAL_HIGH) ? 0 : (1<<3))
| ((palReadPad(GPIOA, 1)==PAL_HIGH) ? 0 : (1<<4))
| ((palReadPad(GPIOA, 3)==PAL_HIGH) ? 0 : (1<<5))
| ((palReadPad(GPIOA, 7)==PAL_HIGH) ? 0 : (1<<6))
| ((palReadPad(GPIOA, 0)==PAL_HIGH) ? 0 : (1<<7));
return ((palReadPad(GPIOA, 5)==PAL_HIGH) ? 0 : (1<<0))
| ((palReadPad(GPIOA, 15)==PAL_HIGH) ? 0 : (1<<1))
| ((palReadPad(GPIOA, 10)==PAL_HIGH) ? 0 : (1<<2))
| ((palReadPad(GPIOA, 9)==PAL_HIGH) ? 0 : (1<<3))
| ((palReadPad(GPIOA, 8)==PAL_HIGH) ? 0 : (1<<4))
| ((palReadPad(GPIOB, 15)==PAL_HIGH) ? 0 : (1<<5))
| ((palReadPad(GPIOB, 14)==PAL_HIGH) ? 0 : (1<<6))
| ((palReadPad(GPIOB, 13)==PAL_HIGH) ? 0 : (1<<7))
| ((palReadPad(GPIOB, 12)==PAL_HIGH) ? 0 : (1<<8))
| ((palReadPad(GPIOB, 11)==PAL_HIGH) ? 0 : (1<<9))
| ((palReadPad(GPIOB, 10)==PAL_HIGH) ? 0 : (1<<10))
| ((palReadPad(GPIOB, 1)==PAL_HIGH) ? 0 : (1<<11))
| ((palReadPad(GPIOB, 0)==PAL_HIGH) ? 0 : (1<<12))
| ((palReadPad(GPIOA, 7)==PAL_HIGH) ? 0 : (1<<13))
| ((palReadPad(GPIOA, 6)==PAL_HIGH) ? 0 : (1<<14));
}
/* Row pin configuration
@ -177,15 +184,7 @@ static void unselect_rows(void)
palSetPadMode(GPIOB, 7, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 6, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 5, PAL_MODE_INPUT);
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 10, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 11, PAL_MODE_INPUT);
palSetPadMode(GPIOA, 9, PAL_MODE_INPUT);
palSetPadMode(GPIOA, 8, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 15, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 14, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 13, PAL_MODE_INPUT);
palSetPadMode(GPIOB, 12, PAL_MODE_INPUT);
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT);
}
// Modified by Xydane
@ -214,40 +213,8 @@ static void select_row(uint8_t row)
palClearPad(GPIOB, 5);
break;
case 5:
palSetPadMode(GPIOA, 10, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 10);
break;
case 6:
palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 10);
break;
case 7:
palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 11);
break;
case 8:
palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 9);
break;
case 9:
palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 8);
break;
case 10:
palSetPadMode(GPIOB, 15, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 15);
break;
case 11:
palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 14);
break;
case 12:
palSetPadMode(GPIOB, 13, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 13);
break;
case 13:
palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 12);
palSetPadMode(GPIOA, 4, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 4);
break;
}
}
Loading…
Cancel
Save