Add tzarc/ghoul. (#18562)
Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
44
keyboards/tzarc/ghoul/ghoul.c
Normal file
44
keyboards/tzarc/ghoul/ghoul.c
Normal file
@@ -0,0 +1,44 @@
|
||||
// Copyright 2018-2022 Nick Brassel (@tzarc)
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "analog.h"
|
||||
#include "spi_master.h"
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
// Enable RGB current limiter and wait for a bit before allowing RGB to continue
|
||||
setPinOutput(RGB_ENABLE_PIN);
|
||||
writePinHigh(RGB_ENABLE_PIN);
|
||||
wait_ms(20);
|
||||
|
||||
// Offload to the user func
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
// SPI Matrix
|
||||
setPinOutput(SPI_MATRIX_CHIP_SELECT_PIN);
|
||||
writePinHigh(SPI_MATRIX_CHIP_SELECT_PIN);
|
||||
spi_init();
|
||||
|
||||
// Encoder pushbutton
|
||||
setPinInputLow(ENCODER_PUSHBUTTON_PIN);
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
static matrix_row_t temp_matrix[MATRIX_ROWS] = {0};
|
||||
|
||||
// Read from SPI the matrix
|
||||
spi_start(SPI_MATRIX_CHIP_SELECT_PIN, false, 0, SPI_MATRIX_DIVISOR);
|
||||
spi_receive((uint8_t*)temp_matrix, MATRIX_SHIFT_REGISTER_COUNT * sizeof(matrix_row_t));
|
||||
spi_stop();
|
||||
|
||||
// Read from the encoder pushbutton
|
||||
temp_matrix[5] = readPin(ENCODER_PUSHBUTTON_PIN) ? 1 : 0;
|
||||
|
||||
// Check if we've changed, return the last-read data
|
||||
bool changed = memcmp(current_matrix, temp_matrix, sizeof(temp_matrix)) != 0;
|
||||
if (changed) {
|
||||
memcpy(current_matrix, temp_matrix, sizeof(temp_matrix));
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
Reference in New Issue
Block a user