~ruther/qmk_firmware

de57799530d3184722532f93d156364067d8fcd5 — Jack Humbert 9 years ago 209ee3c
brings alps64 up-to-date (needs testing)
M keyboard/alps64/Makefile => keyboard/alps64/Makefile +4 -5
@@ 42,14 42,14 @@
TARGET = alps64

# Directory common source filess exist
TOP_DIR = ../..
TMK_DIR = ../../tmk_core

# Directory keyboard dependent files exist
TARGET_DIR = .

# project specific files
SRC =	keymap_common.c \
	matrix.c \
SRC =	alps64.c \
	led.c

ifdef KEYMAP


@@ 127,8 127,7 @@ COMMAND_ENABLE = yes    # Commands for debug and configuration

# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TOP_DIR)
VPATH += $(TMK_DIR)

include $(TMK_DIR)/protocol/lufa.mk
include $(TMK_DIR)/common.mk
include $(TMK_DIR)/rules.mk
include $(TOP_DIR)/quantum/quantum.mk

R keyboard/alps64/keymap_common.c => keyboard/alps64/alps64.c +22 -9
@@ 14,17 14,30 @@ 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_common.h"
#include "quantum.h"

#define LED_ON()    do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0)
#define LED_OFF()   do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0)
#define LED_TGL()   do { DDRC |= (1<<5); PINC |= (1<<5); } while (0)

/* translates key to keycode */
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
{
    return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
__attribute__ ((weak))
void matrix_init_user(void) {

}

__attribute__ ((weak))
void matrix_scan_user(void) {

}

void matrix_init_kb(void) {
    LED_ON();
    _delay_ms(500);
    LED_OFF();
    
    matrix_init_user();
}

/* translates Fn keycode to action */
action_t keymap_fn_to_action(uint8_t keycode)
{
    return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
void matrix_scan_kb(void) {
    matrix_scan_user();
}

R keyboard/alps64/keymap_common.h => keyboard/alps64/alps64.h +3 -18
@@ 14,25 14,10 @@ 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 KEYMAP_COMMON_H
#define KEYMAP_COMMON_H

#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "keycode.h"
#include "action.h"
#include "action_macro.h"
#include "report.h"
#include "host.h"
#include "print.h"
#include "debug.h"
#include "keymap.h"


extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
extern const uint16_t fn_actions[];
#ifndef ALPS64_H
#define ALPS64_H

#include "quantum.h"

/* Alps64 keymap definition macro */
#define KEYMAP( \

M keyboard/alps64/config.h => keyboard/alps64/config.h +5 -0
@@ 18,6 18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_H
#define CONFIG_H

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID       0xFEED


@@ 31,6 32,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 8
#define MATRIX_COLS 8

#define MATRIX_COL_PINS {  B0, B1, B2, B3, B4, B5, B6, B7 }
#define MATRIX_ROW_PINS {  D0, D1, D2, D3, D4, D5, D6, C2 }
#define UNUSED_PINS

/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST


M keyboard/alps64/keymaps/default.c => keyboard/alps64/keymaps/default.c +2 -2
@@ 1,6 1,6 @@
#include "keymap_common.h"
#include "alps64.h"

const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* 0: qwerty */
    KEYMAP( \
        GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, NUHS, BSPC, \

M keyboard/alps64/keymaps/hasu.c => keyboard/alps64/keymaps/hasu.c +2 -2
@@ 1,9 1,9 @@
#include "keymap_common.h"
#include "alps64.h"

/*
 * Hasu
 */
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Default Layer
     * ,-----------------------------------------------------------.
     * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|   \   |

M keyboard/alps64/matrix.c => keyboard/alps64/matrix.c +1 -4
@@ 55,10 55,6 @@ uint8_t matrix_cols(void)
    return MATRIX_COLS;
}

#define LED_ON()    do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0)
#define LED_OFF()   do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0)
#define LED_TGL()   do { DDRC |= (1<<5); PINC |= (1<<5); } while (0)

void matrix_init(void)
{
    // initialize row and col


@@ 160,6 156,7 @@ static void unselect_rows(void)
    PORTC &= ~0b00000100;
}


static void select_row(uint8_t row)
{
    // Output low(DDR:1, PORT:0) to select

M quantum/matrix.c => quantum/matrix.c +4 -2
@@ 68,8 68,10 @@ uint8_t matrix_cols(void) {

void matrix_init(void) {
    /* frees PORTF by setting the JTD bit twice within four cycles */
    MCUCR |= _BV(JTD);
    MCUCR |= _BV(JTD);
    #ifdef __AVR_ATmega32U4__
        MCUCR |= _BV(JTD);
        MCUCR |= _BV(JTD);
    #endif
    /* initializes the I/O pins */
#if DIODE_DIRECTION == COL2ROW
    for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {

M quantum/quantum.h => quantum/quantum.h +1 -0
@@ 23,6 23,7 @@
#include "eeconfig.h"
#include <stddef.h>
#include <avr/io.h>
#include <util/delay.h>

extern uint32_t default_layer_state;