forked from forks/qmk_firmware
Convert some AVR GPIO operations to macros (#23424)
This commit is contained in:
parent
7220715dd1
commit
61c7c1f74c
|
@ -25,16 +25,14 @@ bool led_update_kb(led_t led_state)
|
||||||
if (res) {
|
if (res) {
|
||||||
if (led_state.caps_lock) {
|
if (led_state.caps_lock) {
|
||||||
// output low
|
// output low
|
||||||
DDRB |= (1<<0);
|
gpio_set_pin_output(B0);
|
||||||
PORTB &= ~(1<<0);
|
gpio_write_pin_low(B0);
|
||||||
DDRD |= (1<<5);
|
gpio_set_pin_output(D5);
|
||||||
PORTD &= ~(1<<5);
|
gpio_write_pin_low(D5);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRB &= ~(1<<0);
|
gpio_set_pin_input(B0);
|
||||||
PORTB &= ~(1<<0);
|
gpio_set_pin_input(D5);
|
||||||
DDRD &= ~(1<<5);
|
|
||||||
PORTD &= ~(1<<5);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -126,14 +126,18 @@ void matrix_print(void)
|
||||||
static void init_cols(void)
|
static void init_cols(void)
|
||||||
{
|
{
|
||||||
// Input with pull-up(DDR:0, PORT:1)
|
// Input with pull-up(DDR:0, PORT:1)
|
||||||
DDRF &= ~(1<<4 | 1<<5 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(F4);
|
||||||
PORTF |= (1<<4 | 1<<5 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(F5);
|
||||||
DDRE &= ~(1<<6);
|
gpio_set_pin_input_high(F6);
|
||||||
PORTE |= (1<<6);
|
gpio_set_pin_input_high(F7);
|
||||||
DDRD &= ~(1<<7);
|
gpio_set_pin_input_high(E6);
|
||||||
PORTD |= (1<<7);
|
gpio_set_pin_input_high(D7);
|
||||||
DDRB &= ~(1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6);
|
gpio_set_pin_input_high(B1);
|
||||||
PORTB |= (1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6);
|
gpio_set_pin_input_high(B2);
|
||||||
|
gpio_set_pin_input_high(B3);
|
||||||
|
gpio_set_pin_input_high(B4);
|
||||||
|
gpio_set_pin_input_high(B5);
|
||||||
|
gpio_set_pin_input_high(B6);
|
||||||
}
|
}
|
||||||
|
|
||||||
static matrix_row_t read_cols(void)
|
static matrix_row_t read_cols(void)
|
||||||
|
@ -160,10 +164,10 @@ static matrix_row_t read_cols(void)
|
||||||
static void unselect_rows(void)
|
static void unselect_rows(void)
|
||||||
{
|
{
|
||||||
// Hi-Z(DDR:0, PORT:0) to unselect
|
// Hi-Z(DDR:0, PORT:0) to unselect
|
||||||
DDRD &= ~0b00010011;
|
gpio_set_pin_input(C6);
|
||||||
PORTD &= ~0b00010011;
|
gpio_set_pin_input(D0);
|
||||||
DDRC &= ~0b01000000;
|
gpio_set_pin_input(D1);
|
||||||
PORTC &= ~0b01000000;
|
gpio_set_pin_input(D4);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void select_row(uint8_t row)
|
static void select_row(uint8_t row)
|
||||||
|
@ -171,20 +175,20 @@ static void select_row(uint8_t row)
|
||||||
// Output low(DDR:1, PORT:0) to select
|
// Output low(DDR:1, PORT:0) to select
|
||||||
switch (row) {
|
switch (row) {
|
||||||
case 0:
|
case 0:
|
||||||
DDRD |= (1<<1);
|
gpio_set_pin_output(D1);
|
||||||
PORTD &= ~(1<<1);
|
gpio_write_pin_low(D1);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
DDRD |= (1<<0);
|
gpio_set_pin_output(D0);
|
||||||
PORTD &= ~(1<<0);
|
gpio_write_pin_low(D0);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
DDRD |= (1<<4);
|
gpio_set_pin_output(D4);
|
||||||
PORTD &= ~(1<<4);
|
gpio_write_pin_low(D4);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,8 +65,8 @@ void matrix_init(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 85 REST
|
// 85 REST
|
||||||
DDRD |= _BV(PD7);
|
gpio_set_pin_output(D7);
|
||||||
PORTD |= _BV(PD7);
|
gpio_write_pin_high(D7);
|
||||||
|
|
||||||
// initialize row and col
|
// initialize row and col
|
||||||
init_rows();
|
init_rows();
|
||||||
|
@ -143,36 +143,35 @@ static void init_cols(void)
|
||||||
DDRD &= 0b00011100;
|
DDRD &= 0b00011100;
|
||||||
PORTD |= 0b11100011;
|
PORTD |= 0b11100011;
|
||||||
|
|
||||||
DDRB &= ~(_BV(PB6) | _BV(PB7)| _BV(PB0));
|
gpio_set_pin_input_high(B0);
|
||||||
PORTB |= (_BV(PB6) | _BV(PB7)| _BV(PB0));
|
gpio_set_pin_input_high(B6);
|
||||||
|
gpio_set_pin_input_high(B7);
|
||||||
|
|
||||||
DDRE &= ~_BV(PE6);
|
gpio_set_pin_input_high(E6);
|
||||||
PORTE |= _BV(PE6);
|
|
||||||
|
|
||||||
DDRC &= ~_BV(PC7);
|
gpio_set_pin_input_high(C7);
|
||||||
PORTC |= _BV(PC7);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static matrix_row_t read_cols(void)
|
static matrix_row_t read_cols(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
return (PINF&_BV(PF7) ? 0 : (1<<0)) |
|
return (gpio_read_pin(F7) ? 0 : (1<<0)) |
|
||||||
(PINF&_BV(PF6) ? 0 : (1<<1)) |
|
(gpio_read_pin(F6) ? 0 : (1<<1)) |
|
||||||
(PINF&_BV(PF5) ? 0 : (1<<2)) |
|
(gpio_read_pin(F5) ? 0 : (1<<2)) |
|
||||||
(PINF&_BV(PF4) ? 0 : (1<<3)) |
|
(gpio_read_pin(F4) ? 0 : (1<<3)) |
|
||||||
(PINF&_BV(PF1) ? 0 : (1<<4)) |
|
(gpio_read_pin(F1) ? 0 : (1<<4)) |
|
||||||
(PINF&_BV(PF0) ? 0 : (1<<5)) |
|
(gpio_read_pin(F0) ? 0 : (1<<5)) |
|
||||||
(PINE&_BV(PE6) ? 0 : (1<<6)) |
|
(gpio_read_pin(E6) ? 0 : (1<<6)) |
|
||||||
(PIND&_BV(PD7) ? 0 : (1<<7)) |
|
(gpio_read_pin(D7) ? 0 : (1<<7)) |
|
||||||
(PIND&_BV(PD6) ? 0 : (1<<8)) |
|
(gpio_read_pin(D6) ? 0 : (1<<8)) |
|
||||||
(PIND&_BV(PD5) ? 0 : (1<<9)) |
|
(gpio_read_pin(D5) ? 0 : (1<<9)) |
|
||||||
(PIND&_BV(PD1) ? 0 : (1<<10)) |
|
(gpio_read_pin(D1) ? 0 : (1<<10)) |
|
||||||
(PIND&_BV(PD0) ? 0 : (1<<11)) |
|
(gpio_read_pin(D0) ? 0 : (1<<11)) |
|
||||||
(PINB&_BV(PB7) ? 0 : (1<<12)) |
|
(gpio_read_pin(B7) ? 0 : (1<<12)) |
|
||||||
(PINB&_BV(PB6) ? 0 : (1<<13)) |
|
(gpio_read_pin(B6) ? 0 : (1<<13)) |
|
||||||
(PINB&_BV(PB0) ? 0 : (1<<14)) |
|
(gpio_read_pin(B0) ? 0 : (1<<14)) |
|
||||||
(PINC&_BV(PC7) ? 0 : (1<<15));
|
(gpio_read_pin(C7) ? 0 : (1<<15));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Row pin configuration
|
/* Row pin configuration
|
||||||
|
@ -184,21 +183,23 @@ static matrix_row_t read_cols(void)
|
||||||
|
|
||||||
static void init_rows(void)
|
static void init_rows(void)
|
||||||
{
|
{
|
||||||
DDRB |= (1<<PB1 | 1<<PB2 | 1<<PB3);
|
gpio_set_pin_input(B1);
|
||||||
|
gpio_set_pin_input(B2);
|
||||||
|
gpio_set_pin_input(B3);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unselect_rows(void)
|
static void unselect_rows(void)
|
||||||
{
|
{
|
||||||
// Hi-Z(DDR:0, PORT:0) to unselect
|
// Hi-Z(DDR:0, PORT:0) to unselect
|
||||||
PORTB |= (1<<PB1);
|
gpio_write_pin_high(B1);
|
||||||
PORTB |= (1<<PB2);
|
gpio_write_pin_high(B2);
|
||||||
PORTB |= (1<<PB3);
|
gpio_write_pin_high(B3);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void select_row(uint8_t row)
|
static void select_row(uint8_t row)
|
||||||
{
|
{
|
||||||
// Output low(DDR:1, PORT:0) to select
|
// Output low(DDR:1, PORT:0) to select
|
||||||
(row & (1<<0)) ? (PORTB |= (1<<PB3)) : (PORTB &= ~(1<<PB3));
|
gpio_write_pin(B3, row & (1<<0));
|
||||||
(row & (1<<1)) ? (PORTB |= (1<<PB2)) : (PORTB &= ~(1<<PB2));
|
gpio_write_pin(B2, row & (1<<1));
|
||||||
(row & (1<<2)) ? (PORTB |= (1<<PB1)) : (PORTB &= ~(1<<PB1));
|
gpio_write_pin(B1, row & (1<<2));
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,15 +54,13 @@ void matrix_init_kb(void) {
|
||||||
TCCR1B = 0b00001001; // set and configure fast PWM
|
TCCR1B = 0b00001001; // set and configure fast PWM
|
||||||
|
|
||||||
// (tied to Vcc for hardware convenience)
|
// (tied to Vcc for hardware convenience)
|
||||||
DDRB &= ~(1<<4); // set B(4) as input
|
gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled
|
||||||
PORTB &= ~(1<<4); // set B(4) internal pull-up disabled
|
|
||||||
|
|
||||||
// unused pins - D4, D5, E6
|
// unused pins - D4, D5, E6
|
||||||
// set as input with internal pull-up enabled
|
// set as input with internal pull-up enabled
|
||||||
DDRD &= ~(1<<5 | 1<<4);
|
gpio_set_pin_input_high(D4);
|
||||||
DDRE &= ~(1<<6);
|
gpio_set_pin_input_high(D5);
|
||||||
PORTD |= (1<<5 | 1<<4);
|
gpio_set_pin_input_high(E6);
|
||||||
PORTE |= (1<<6);
|
|
||||||
|
|
||||||
keyboard_config.raw = eeconfig_read_kb();
|
keyboard_config.raw = eeconfig_read_kb();
|
||||||
bajjak_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 );
|
bajjak_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 );
|
||||||
|
|
|
@ -2,19 +2,56 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
inline void sixshooter_led_0_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); }
|
#define SIXSHOOTER_LED_0_PIN B6
|
||||||
inline void sixshooter_led_1_on(void) { DDRC |= (1<<7); PORTC |= (1<<7); }
|
#define SIXSHOOTER_LED_1_PIN C7
|
||||||
inline void sixshooter_led_2_on(void) { DDRD |= (1<<0); PORTD |= (1<<0); }
|
#define SIXSHOOTER_LED_2_PIN D0
|
||||||
inline void sixshooter_led_3_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); }
|
#define SIXSHOOTER_LED_3_PIN B5
|
||||||
inline void sixshooter_led_4_on(void) { DDRD |= (1<<7); PORTD |= (1<<7); }
|
#define SIXSHOOTER_LED_4_PIN D7
|
||||||
inline void sixshooter_led_5_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); }
|
#define SIXSHOOTER_LED_5_PIN B7
|
||||||
|
|
||||||
inline void sixshooter_led_0_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); }
|
inline void sixshooter_led_0_on(void) {
|
||||||
inline void sixshooter_led_1_off(void) { DDRC &= ~(1<<7); PORTC &= ~(1<<7); }
|
gpio_set_pin_output(SIXSHOOTER_LED_0_PIN);
|
||||||
inline void sixshooter_led_2_off(void) { DDRD &= ~(1<<0); PORTD &= ~(1<<0); }
|
gpio_write_pin_high(SIXSHOOTER_LED_0_PIN);
|
||||||
inline void sixshooter_led_3_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); }
|
}
|
||||||
inline void sixshooter_led_4_off(void) { DDRD &= ~(1<<7); PORTD &= ~(1<<7); }
|
inline void sixshooter_led_1_on(void) {
|
||||||
inline void sixshooter_led_5_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); }
|
gpio_set_pin_output(SIXSHOOTER_LED_1_PIN);
|
||||||
|
gpio_write_pin_high(SIXSHOOTER_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_2_on(void) {
|
||||||
|
gpio_set_pin_output(SIXSHOOTER_LED_2_PIN);
|
||||||
|
gpio_write_pin_high(SIXSHOOTER_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_3_on(void) {
|
||||||
|
gpio_set_pin_output(SIXSHOOTER_LED_3_PIN);
|
||||||
|
gpio_write_pin_high(SIXSHOOTER_LED_3_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_4_on(void) {
|
||||||
|
gpio_set_pin_output(SIXSHOOTER_LED_4_PIN);
|
||||||
|
gpio_write_pin_high(SIXSHOOTER_LED_4_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_5_on(void) {
|
||||||
|
gpio_set_pin_output(SIXSHOOTER_LED_5_PIN);
|
||||||
|
gpio_write_pin_high(SIXSHOOTER_LED_5_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void sixshooter_led_0_off(void) {
|
||||||
|
gpio_set_pin_input(SIXSHOOTER_LED_0_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_1_off(void) {
|
||||||
|
gpio_set_pin_input(SIXSHOOTER_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_2_off(void) {
|
||||||
|
gpio_set_pin_input(SIXSHOOTER_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_3_off(void) {
|
||||||
|
gpio_set_pin_input(SIXSHOOTER_LED_3_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_4_off(void) {
|
||||||
|
gpio_set_pin_input(SIXSHOOTER_LED_4_PIN);
|
||||||
|
}
|
||||||
|
inline void sixshooter_led_5_off(void) {
|
||||||
|
gpio_set_pin_input(SIXSHOOTER_LED_5_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void sixshooter_led_all_on(void) {
|
inline void sixshooter_led_all_on(void) {
|
||||||
sixshooter_led_0_on();
|
sixshooter_led_0_on();
|
||||||
|
|
|
@ -4,8 +4,8 @@ void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
// Turn status LED on
|
// Turn status LED on
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,26 +4,26 @@
|
||||||
void backlight_init_ports(void) {
|
void backlight_init_ports(void) {
|
||||||
print("init_backlight_pin()\n");
|
print("init_backlight_pin()\n");
|
||||||
// Set our LED pins as output
|
// Set our LED pins as output
|
||||||
DDRD |= (1<<6); // Esc
|
gpio_set_pin_output(D6); // Esc
|
||||||
DDRB |= (1<<7); // Page Up
|
gpio_set_pin_output(B7); // Page Up
|
||||||
DDRD |= (1<<4); // Arrows
|
gpio_set_pin_output(D4); // Arrows
|
||||||
|
|
||||||
// Set our LED pins low
|
// Set our LED pins low
|
||||||
PORTD &= ~(1<<6); // Esc
|
gpio_write_pin_low(D6); // Esc
|
||||||
PORTB &= ~(1<<7); // Page Up
|
gpio_write_pin_low(B7); // Page Up
|
||||||
PORTD &= ~(1<<4); // Arrows
|
gpio_write_pin_low(D4); // Arrows
|
||||||
}
|
}
|
||||||
|
|
||||||
void backlight_set(uint8_t level) {
|
void backlight_set(uint8_t level) {
|
||||||
if ( level == 0 ) {
|
if ( level == 0 ) {
|
||||||
// Turn off light
|
// Turn off light
|
||||||
PORTD |= (1<<6); // Esc
|
gpio_write_pin_high(D6); // Esc
|
||||||
PORTB |= (1<<7); // Page Up
|
gpio_write_pin_high(B7); // Page Up
|
||||||
PORTD |= (1<<4); // Arrows
|
gpio_write_pin_high(D4); // Arrows
|
||||||
} else {
|
} else {
|
||||||
// Turn on light
|
// Turn on light
|
||||||
PORTD &= ~(1<<6); // Esc
|
gpio_write_pin_low(D6); // Esc
|
||||||
PORTB &= ~(1<<7); // Page Up
|
gpio_write_pin_low(B7); // Page Up
|
||||||
PORTD &= ~(1<<4); // Arrows
|
gpio_write_pin_low(D4); // Arrows
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,26 +4,26 @@
|
||||||
void backlight_init_ports(void) {
|
void backlight_init_ports(void) {
|
||||||
print("init_backlight_pin()\n");
|
print("init_backlight_pin()\n");
|
||||||
// Set our LED pins as output
|
// Set our LED pins as output
|
||||||
DDRD |= (1<<6); // Esc
|
gpio_set_pin_output(D6); // Esc
|
||||||
DDRB |= (1<<7); // Page Up
|
gpio_set_pin_output(B7); // Page Up
|
||||||
DDRD |= (1<<4); // Arrows
|
gpio_set_pin_output(D4); // Arrows
|
||||||
|
|
||||||
// Set our LED pins low
|
// Set our LED pins low
|
||||||
PORTD &= ~(1<<6); // Esc
|
gpio_write_pin_low(D6); // Esc
|
||||||
PORTB &= ~(1<<7); // Page Up
|
gpio_write_pin_low(B7); // Page Up
|
||||||
PORTD &= ~(1<<4); // Arrows
|
gpio_write_pin_low(D4); // Arrows
|
||||||
}
|
}
|
||||||
|
|
||||||
void backlight_set(uint8_t level) {
|
void backlight_set(uint8_t level) {
|
||||||
if ( level == 0 ) {
|
if ( level == 0 ) {
|
||||||
// Turn off light
|
// Turn off light
|
||||||
PORTD |= (1<<6); // Esc
|
gpio_write_pin_high(D6); // Esc
|
||||||
PORTB |= (1<<7); // Page Up
|
gpio_write_pin_high(B7); // Page Up
|
||||||
PORTD |= (1<<4); // Arrows
|
gpio_write_pin_high(D4); // Arrows
|
||||||
} else {
|
} else {
|
||||||
// Turn on light
|
// Turn on light
|
||||||
PORTD &= ~(1<<6); // Esc
|
gpio_write_pin_low(D6); // Esc
|
||||||
PORTB &= ~(1<<7); // Page Up
|
gpio_write_pin_low(B7); // Page Up
|
||||||
PORTD &= ~(1<<4); // Arrows
|
gpio_write_pin_low(D4); // Arrows
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,26 +4,26 @@
|
||||||
void backlight_init_ports(void) {
|
void backlight_init_ports(void) {
|
||||||
print("init_backlight_pin()\n");
|
print("init_backlight_pin()\n");
|
||||||
// Set our LED pins as output
|
// Set our LED pins as output
|
||||||
DDRD |= (1<<0); // Esc
|
gpio_set_pin_output(D0); // Esc
|
||||||
DDRD |= (1<<4); // Page Up
|
gpio_set_pin_output(D4); // Page Up
|
||||||
DDRD |= (1<<1); // Arrows
|
gpio_set_pin_output(D1); // Arrows
|
||||||
|
|
||||||
// Set our LED pins low
|
// Set our LED pins low
|
||||||
PORTD &= ~(1<<0); // Esc
|
gpio_write_pin_low(D0); // Esc
|
||||||
PORTD &= ~(1<<4); // Page Up
|
gpio_write_pin_low(D4); // Page Up
|
||||||
PORTD &= ~(1<<1); // Arrows
|
gpio_write_pin_low(D1); // Arrows
|
||||||
}
|
}
|
||||||
|
|
||||||
void backlight_set(uint8_t level) {
|
void backlight_set(uint8_t level) {
|
||||||
if ( level == 0 ) {
|
if ( level == 0 ) {
|
||||||
// Turn off light
|
// Turn off light
|
||||||
PORTD |= (1<<0); // Esc
|
gpio_write_pin_high(D0); // Esc
|
||||||
PORTD |= (1<<4); // Page Up
|
gpio_write_pin_high(D4); // Page Up
|
||||||
PORTD |= (1<<1); // Arrows
|
gpio_write_pin_high(D1); // Arrows
|
||||||
} else {
|
} else {
|
||||||
// Turn on light
|
// Turn on light
|
||||||
PORTD &= ~(1<<0); // Esc
|
gpio_write_pin_low(D0); // Esc
|
||||||
PORTD &= ~(1<<4); // Page Up
|
gpio_write_pin_low(D4); // Page Up
|
||||||
PORTD &= ~(1<<1); // Arrows
|
gpio_write_pin_low(D1); // Arrows
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,17 +82,17 @@ void matrix_scan_user(void) {
|
||||||
// switch, and then into the diode, then into one of the columns into the
|
// switch, and then into the diode, then into one of the columns into the
|
||||||
// matrix. the reset pin can be used to reset the entire counter.
|
// matrix. the reset pin can be used to reset the entire counter.
|
||||||
|
|
||||||
#define RESET _BV(PB0)
|
#define HP_46010A_RESET_PIN B0
|
||||||
#define SCLK _BV(PB1)
|
#define HP_46010A_SCLK_PIN B1
|
||||||
#define SDATA _BV(PB3)
|
#define HP_46010A_SDATA_PIN B3
|
||||||
#define LED _BV(PD6)
|
#define HP_46010A_LED_PIN D6
|
||||||
|
|
||||||
inline
|
inline
|
||||||
static
|
static
|
||||||
void SCLK_increment(void) {
|
void SCLK_increment(void) {
|
||||||
PORTB &= ~SCLK ;
|
gpio_write_pin_low(HP_46010A_SCLK_PIN);
|
||||||
_delay_us( 4 ) ; // make sure the line is stable
|
_delay_us( 4 ) ; // make sure the line is stable
|
||||||
PORTB |= SCLK ;
|
gpio_write_pin_high(HP_46010A_SCLK_PIN);
|
||||||
_delay_us( 4 ) ;
|
_delay_us( 4 ) ;
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
|
@ -101,9 +101,9 @@ void SCLK_increment(void) {
|
||||||
inline
|
inline
|
||||||
static
|
static
|
||||||
void Matrix_Reset(void) {
|
void Matrix_Reset(void) {
|
||||||
PORTB |= RESET ;
|
gpio_write_pin_high(HP_46010A_RESET_PIN);
|
||||||
_delay_us( 4 ) ; // make sure the line is stable
|
_delay_us( 4 ) ; // make sure the line is stable
|
||||||
PORTB &= ~RESET ;
|
gpio_write_pin_low(HP_46010A_RESET_PIN);
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ uint8_t Matrix_ReceiveByte (void) {
|
||||||
for ( uint8_t bit = 0; bit < MATRIX_COLS; ++bit ) {
|
for ( uint8_t bit = 0; bit < MATRIX_COLS; ++bit ) {
|
||||||
// toggle the clock
|
// toggle the clock
|
||||||
SCLK_increment();
|
SCLK_increment();
|
||||||
temp = (PINB & SDATA) << 4 ;
|
temp = gpio_read_pin(HP_46010A_SDATA_PIN) << 4 ;
|
||||||
received |= temp >> bit ;
|
received |= temp >> bit ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,18 +138,19 @@ void Matrix_ThrowByte(void) {
|
||||||
void matrix_init (void) {
|
void matrix_init (void) {
|
||||||
// debug_matrix = 1;
|
// debug_matrix = 1;
|
||||||
// PB0 (SS) and PB1 (SCLK) set to outputs
|
// PB0 (SS) and PB1 (SCLK) set to outputs
|
||||||
DDRB |= RESET | SCLK ;
|
gpio_set_pin_output(HP_46010A_RESET_PIN);
|
||||||
|
gpio_set_pin_output(HP_46010A_SCLK_PIN);
|
||||||
// PB2, is unused, and PB3 is our serial input
|
// PB2, is unused, and PB3 is our serial input
|
||||||
DDRB &= ~SDATA ;
|
gpio_set_pin_input(HP_46010A_SDATA_PIN);
|
||||||
|
|
||||||
// SS is reset for this board, and is active High
|
// SS is reset for this board, and is active High
|
||||||
// SCLK is the serial clock and is active High
|
// SCLK is the serial clock and is active High
|
||||||
PORTB &= ~RESET ;
|
gpio_write_pin_low(HP_46010A_RESET_PIN);
|
||||||
PORTB |= SCLK ;
|
gpio_write_pin_high(HP_46010A_SCLK_PIN);
|
||||||
|
|
||||||
// led pin
|
// led pin
|
||||||
DDRD |= LED ;
|
gpio_set_pin_output(HP_46010A_LED_PIN);
|
||||||
PORTD &= ~LED ;
|
gpio_write_pin_low(HP_46010A_LED_PIN);
|
||||||
|
|
||||||
matrix_init_kb();
|
matrix_init_kb();
|
||||||
|
|
||||||
|
|
|
@ -74,8 +74,8 @@ uint8_t matrix_cols(void)
|
||||||
|
|
||||||
void matrix_init(void)
|
void matrix_init(void)
|
||||||
{
|
{
|
||||||
/* DDRD |= (1<<6); */
|
/* gpio_set_pin_output(D6); */
|
||||||
/* PORTD |= (1<<6); */
|
/* gpio_write_pin_high(D6); */
|
||||||
debug_enable = true;
|
debug_enable = true;
|
||||||
|
|
||||||
uart_init(1200);
|
uart_init(1200);
|
||||||
|
@ -99,7 +99,7 @@ void matrix_init(void)
|
||||||
/* } */
|
/* } */
|
||||||
/* print(" Done\n"); */
|
/* print(" Done\n"); */
|
||||||
|
|
||||||
/* PORTD &= ~(1<<6); */
|
/* gpio_write_pin_low(D6) */
|
||||||
|
|
||||||
matrix_init_kb();
|
matrix_init_kb();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -40,32 +40,16 @@ void set_led(int idx, bool enable) {
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case BL1:
|
case BL1:
|
||||||
if (record->event.pressed) {
|
gpio_write_pin(B4, record->event.pressed);
|
||||||
PORTB |= (1 << 4);
|
|
||||||
} else {
|
|
||||||
PORTB &= ~(1 << 4);
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
case BL2:
|
case BL2:
|
||||||
if (record->event.pressed) {
|
gpio_write_pin(B5, record->event.pressed);
|
||||||
PORTB |= (1 << 5);
|
|
||||||
} else {
|
|
||||||
PORTB &= ~(1 << 5);
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
case BL3:
|
case BL3:
|
||||||
if (record->event.pressed) {
|
gpio_write_pin(B6, record->event.pressed);
|
||||||
PORTB |= (1 << 6);
|
|
||||||
} else {
|
|
||||||
PORTB &= ~(1 << 6);
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
case BL4:
|
case BL4:
|
||||||
if (record->event.pressed) {
|
gpio_write_pin(B7, record->event.pressed);
|
||||||
PORTB |= (1 << 7);
|
|
||||||
} else {
|
|
||||||
PORTB &= ~(1 << 7);
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -73,6 +57,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
/* set LED row pins to output and low */
|
/* set LED row pins to output and low */
|
||||||
DDRB |= (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7);
|
gpio_set_pin_output(B4);
|
||||||
PORTB &= ~(1 << 4) & ~(1 << 5) & ~(1 << 6) & ~(1 << 7);
|
gpio_set_pin_output(B5);
|
||||||
|
gpio_set_pin_output(B6);
|
||||||
|
gpio_set_pin_output(B7);
|
||||||
|
|
||||||
|
gpio_write_pin_low(B4);
|
||||||
|
gpio_write_pin_low(B5);
|
||||||
|
gpio_write_pin_low(B6);
|
||||||
|
gpio_write_pin_low(B7);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define DO60_CAPS_LOCK_LED_PIN B2
|
||||||
|
#define DO60_BACKLIGHT_PIN F4
|
||||||
|
|
||||||
/* DO60 LEDs
|
/* DO60 LEDs
|
||||||
* GPIO pads
|
* GPIO pads
|
||||||
* 0 F7 not connected
|
* 0 F7 not connected
|
||||||
|
@ -13,11 +16,21 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
inline void do60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
|
inline void do60_caps_led_on(void) {
|
||||||
inline void do60_bl_led_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
|
gpio_set_pin_output(DO60_CAPS_LOCK_LED_PIN);
|
||||||
|
gpio_write_pin_low(DO60_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void do60_bl_led_on(void) {
|
||||||
|
gpio_set_pin_output(DO60_BACKLIGHT_PIN);
|
||||||
|
gpio_write_pin_low(DO60_BACKLIGHT_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void do60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
|
inline void do60_caps_led_off(void) {
|
||||||
inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
|
gpio_set_pin_input(DO60_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void do60_bl_led_off(void) {
|
||||||
|
gpio_set_pin_input(DO60_BACKLIGHT_PIN);
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
inline void setdefaultrgb(void){ rgblight_sethsv(100,100,100); }
|
inline void setdefaultrgb(void){ rgblight_sethsv(100,100,100); }
|
||||||
|
|
|
@ -24,13 +24,11 @@ extern inline void ergodox_board_led_on(void);
|
||||||
extern inline void ergodox_right_led_1_on(void);
|
extern inline void ergodox_right_led_1_on(void);
|
||||||
extern inline void ergodox_right_led_2_on(void);
|
extern inline void ergodox_right_led_2_on(void);
|
||||||
extern inline void ergodox_right_led_3_on(void);
|
extern inline void ergodox_right_led_3_on(void);
|
||||||
extern inline void ergodox_right_led_on(uint8_t led);
|
|
||||||
|
|
||||||
extern inline void ergodox_board_led_off(void);
|
extern inline void ergodox_board_led_off(void);
|
||||||
extern inline void ergodox_right_led_1_off(void);
|
extern inline void ergodox_right_led_1_off(void);
|
||||||
extern inline void ergodox_right_led_2_off(void);
|
extern inline void ergodox_right_led_2_off(void);
|
||||||
extern inline void ergodox_right_led_3_off(void);
|
extern inline void ergodox_right_led_3_off(void);
|
||||||
extern inline void ergodox_right_led_off(uint8_t led);
|
|
||||||
|
|
||||||
extern inline void ergodox_led_all_on(void);
|
extern inline void ergodox_led_all_on(void);
|
||||||
extern inline void ergodox_led_all_off(void);
|
extern inline void ergodox_led_all_off(void);
|
||||||
|
@ -53,17 +51,14 @@ void matrix_init_kb(void) {
|
||||||
TCCR1B = 0b00001001; // set and configure fast PWM
|
TCCR1B = 0b00001001; // set and configure fast PWM
|
||||||
|
|
||||||
// (tied to Vcc for hardware convenience)
|
// (tied to Vcc for hardware convenience)
|
||||||
DDRB &= ~(1 << 4); // set B(4) as input
|
gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled
|
||||||
PORTB &= ~(1 << 4); // set B(4) internal pull-up disabled
|
|
||||||
|
|
||||||
// unused pins - C7, D4, D5, D7, E6
|
// unused pins - C7, D4, D5, E6
|
||||||
// set as input with internal pull-up enabled
|
// set as input with internal pull-up enabled
|
||||||
DDRC &= ~(1 << 7);
|
gpio_set_pin_input_high(C7);
|
||||||
DDRD &= ~(1 << 5 | 1 << 4);
|
gpio_set_pin_input_high(D4);
|
||||||
DDRE &= ~(1 << 6);
|
gpio_set_pin_input_high(D5);
|
||||||
PORTC |= (1 << 7);
|
gpio_set_pin_input_high(E6);
|
||||||
PORTD |= (1 << 5 | 1 << 4);
|
|
||||||
PORTE |= (1 << 6);
|
|
||||||
|
|
||||||
keyboard_config.raw = eeconfig_read_kb();
|
keyboard_config.raw = eeconfig_read_kb();
|
||||||
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4);
|
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4);
|
||||||
|
|
|
@ -51,18 +51,40 @@ uint8_t ergodox_left_leds_update(void);
|
||||||
#define LED_BRIGHTNESS_HI 255
|
#define LED_BRIGHTNESS_HI 255
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define ERGODOX_EZ_BOARD_LED_PIN D6
|
||||||
|
#define ERGODOX_EZ_RIGHT_LED_1_PIN B5
|
||||||
|
#define ERGODOX_EZ_RIGHT_LED_2_PIN B6
|
||||||
|
#define ERGODOX_EZ_RIGHT_LED_3_PIN B7
|
||||||
|
|
||||||
inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); }
|
inline void ergodox_board_led_on(void) {
|
||||||
inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); }
|
gpio_set_pin_output(ERGODOX_EZ_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); }
|
gpio_write_pin_high(ERGODOX_EZ_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); }
|
}
|
||||||
inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); }
|
inline void ergodox_right_led_1_on(void) {
|
||||||
|
gpio_set_pin_output(ERGODOX_EZ_RIGHT_LED_1_PIN);
|
||||||
|
gpio_write_pin_high(ERGODOX_EZ_RIGHT_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_2_on(void) {
|
||||||
|
gpio_set_pin_output(ERGODOX_EZ_RIGHT_LED_2_PIN);
|
||||||
|
gpio_write_pin_high(ERGODOX_EZ_RIGHT_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_3_on(void) {
|
||||||
|
gpio_set_pin_output(ERGODOX_EZ_RIGHT_LED_3_PIN);
|
||||||
|
gpio_write_pin_high(ERGODOX_EZ_RIGHT_LED_3_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); }
|
inline void ergodox_board_led_off(void) {
|
||||||
inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); }
|
gpio_set_pin_input(ERGODOX_EZ_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); }
|
}
|
||||||
inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); }
|
inline void ergodox_right_led_1_off(void) {
|
||||||
inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); }
|
gpio_set_pin_input(ERGODOX_EZ_RIGHT_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_2_off(void) {
|
||||||
|
gpio_set_pin_input(ERGODOX_EZ_RIGHT_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_3_off(void) {
|
||||||
|
gpio_set_pin_input(ERGODOX_EZ_RIGHT_LED_3_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef LEFT_LEDS
|
#ifdef LEFT_LEDS
|
||||||
bool ergodox_left_led_1;
|
bool ergodox_left_led_1;
|
||||||
|
|
|
@ -5,25 +5,30 @@ i2c_status_t mcp23018_status = 0x20;
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
// (tied to Vcc for hardware convenience)
|
// (tied to Vcc for hardware convenience)
|
||||||
//DDRB &= ~(1<<4); // set B(4) as input
|
//gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled
|
||||||
//PORTB &= ~(1<<4); // set B(4) internal pull-up disabled
|
|
||||||
|
|
||||||
// unused pins
|
// unused pins
|
||||||
// set as input with internal pull-up enabled
|
// set as input with internal pull-up enabled
|
||||||
DDRB &= ~(1<<4 | 1<<5 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(B4);
|
||||||
PORTB |= (1<<4 | 1<<5 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(B5);
|
||||||
|
gpio_set_pin_input_high(B6);
|
||||||
|
gpio_set_pin_input_high(B7);
|
||||||
|
|
||||||
DDRC &= ~(1<<7 | 1<<6);
|
gpio_set_pin_input_high(C6);
|
||||||
PORTC |= (1<<7 | 1<<6);
|
gpio_set_pin_input_high(C7);
|
||||||
|
|
||||||
DDRD &= ~(1<<4 | 1<<5 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D4);
|
||||||
PORTD |= (1<<4 | 1<<5 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D5);
|
||||||
|
gpio_set_pin_input_high(D6);
|
||||||
|
gpio_set_pin_input_high(D7);
|
||||||
|
|
||||||
DDRE &= ~(1<<6);
|
gpio_set_pin_input_high(E6);
|
||||||
PORTE |= (1<<6);
|
|
||||||
|
|
||||||
DDRF &= ~(1<<0 | 1<<1 | 1<<4 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D0);
|
||||||
PORTF |= (1<<0 | 1<<1 | 1<<4 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D1);
|
||||||
|
gpio_set_pin_input_high(D4);
|
||||||
|
gpio_set_pin_input_high(D6);
|
||||||
|
gpio_set_pin_input_high(D7);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,17 +7,16 @@ void matrix_init_kb(void) {
|
||||||
steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT
|
steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT
|
||||||
|
|
||||||
// (tied to Vcc for hardware convenience)
|
// (tied to Vcc for hardware convenience)
|
||||||
//DDRB &= ~(1<<4); // set B(4) as input
|
//gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled
|
||||||
//PORTB &= ~(1<<4); // set B(4) internal pull-up disabled
|
|
||||||
|
|
||||||
// unused pins - C7, D4, D5, D7, E6
|
// unused pins - C7, D4, D5, D6, D7, E6
|
||||||
// set as input with internal pull-up enabled
|
// set as input with internal pull-up enabled
|
||||||
DDRC &= ~(1<<7);
|
gpio_set_pin_input_high(C7);
|
||||||
DDRD &= ~(1<<5 | 1<<4 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D4);
|
||||||
DDRE &= ~(1<<6);
|
gpio_set_pin_input_high(D5);
|
||||||
PORTC |= (1<<7);
|
gpio_set_pin_input_high(D6);
|
||||||
PORTD |= (1<<5 | 1<<4 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D7);
|
||||||
PORTE |= (1<<6);
|
gpio_set_pin_input_high(E6);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,17 +5,16 @@ i2c_status_t mcp23018_status = 0x20;
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
// (tied to Vcc for hardware convenience)
|
// (tied to Vcc for hardware convenience)
|
||||||
//DDRB &= ~(1<<4); // set B(4) as input
|
//gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled
|
||||||
//PORTB &= ~(1<<4); // set B(4) internal pull-up disabled
|
|
||||||
|
|
||||||
// unused pins - C7, D4, D5, D7, E6
|
// unused pins - C7, D4, D5, D6, D7, E6
|
||||||
// set as input with internal pull-up enabled
|
// set as input with internal pull-up enabled
|
||||||
DDRC &= ~(1<<7);
|
gpio_set_pin_input_high(C7);
|
||||||
DDRD &= ~(1<<5 | 1<<4 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D4);
|
||||||
DDRE &= ~(1<<6);
|
gpio_set_pin_input_high(D5);
|
||||||
PORTC |= (1<<7);
|
gpio_set_pin_input_high(D6);
|
||||||
PORTD |= (1<<5 | 1<<4 | 1<<6 | 1<<7);
|
gpio_set_pin_input_high(D7);
|
||||||
PORTE |= (1<<6);
|
gpio_set_pin_input_high(E6);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
#include "chimera_ergo.h"
|
#include "chimera_ergo.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
DDRD |= (1<<1);
|
gpio_set_pin_output(CHIMERA_ERGO_GREEN_LED_PIN);
|
||||||
PORTD |= (1<<1);
|
gpio_write_pin_high(CHIMERA_ERGO_GREEN_LED_PIN);
|
||||||
DDRF |= (1<<4) | (1<<5);
|
gpio_set_pin_output(CHIMERA_ERGO_BLUE_LED_PIN);
|
||||||
PORTF |= (1<<4) | (1<<5);
|
gpio_write_pin_high(CHIMERA_ERGO_BLUE_LED_PIN);
|
||||||
|
gpio_set_pin_output(CHIMERA_ERGO_RED_LED_PIN);
|
||||||
|
gpio_write_pin_high(CHIMERA_ERGO_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off PORTF |= (1<<5)
|
#define CHIMERA_ERGO_RED_LED_PIN F5
|
||||||
#define red_led_on PORTF &= ~(1<<5)
|
#define CHIMERA_ERGO_GREEN_LED_PIN D1
|
||||||
#define blu_led_off PORTF |= (1<<4)
|
#define CHIMERA_ERGO_BLUE_LED_PIN F4
|
||||||
#define blu_led_on PORTF &= ~(1<<4)
|
|
||||||
#define grn_led_off PORTD |= (1<<1)
|
#define red_led_off gpio_write_pin_high(CHIMERA_ERGO_RED_LED_PIN)
|
||||||
#define grn_led_on PORTD &= ~(1<<1)
|
#define red_led_on gpio_write_pin_low(CHIMERA_ERGO_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(CHIMERA_ERGO_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(CHIMERA_ERGO_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(CHIMERA_ERGO_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(CHIMERA_ERGO_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
@ -17,27 +21,3 @@
|
||||||
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
/*
|
|
||||||
#define LED_B 5
|
|
||||||
#define LED_R 6
|
|
||||||
#define LED_G 7
|
|
||||||
|
|
||||||
#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
|
|
||||||
#define red_led_on PORTF |= (1<<LED_R)
|
|
||||||
#define red_led_off PORTF &= ~(1<<LED_R)
|
|
||||||
#define grn_led_on PORTF |= (1<<LED_G)
|
|
||||||
#define grn_led_off PORTF &= ~(1<<LED_G)
|
|
||||||
#define blu_led_on PORTF |= (1<<LED_B)
|
|
||||||
#define blu_led_off PORTF &= ~(1<<LED_B)
|
|
||||||
|
|
||||||
#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
|
|
||||||
#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
|
|
||||||
#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
*/
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
#include "chimera_ls.h"
|
#include "chimera_ls.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
DDRD |= (1<<1);
|
gpio_set_pin_output(CHIMERA_LS_GREEN_LED_PIN);
|
||||||
PORTD |= (1<<1);
|
gpio_write_pin_high(CHIMERA_LS_GREEN_LED_PIN);
|
||||||
DDRF |= (1<<4) | (1<<5);
|
gpio_set_pin_output(CHIMERA_LS_BLUE_LED_PIN);
|
||||||
PORTF |= (1<<4) | (1<<5);
|
gpio_write_pin_high(CHIMERA_LS_BLUE_LED_PIN);
|
||||||
|
gpio_set_pin_output(CHIMERA_LS_RED_LED_PIN);
|
||||||
|
gpio_write_pin_high(CHIMERA_LS_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off PORTF |= (1<<5)
|
#define CHIMERA_LS_RED_LED_PIN F5
|
||||||
#define red_led_on PORTF &= ~(1<<5)
|
#define CHIMERA_LS_GREEN_LED_PIN D1
|
||||||
#define blu_led_off PORTF |= (1<<4)
|
#define CHIMERA_LS_BLUE_LED_PIN F4
|
||||||
#define blu_led_on PORTF &= ~(1<<4)
|
|
||||||
#define grn_led_off PORTD |= (1<<1)
|
#define red_led_off gpio_write_pin_high(CHIMERA_LS_RED_LED_PIN)
|
||||||
#define grn_led_on PORTD &= ~(1<<1)
|
#define red_led_on gpio_write_pin_low(CHIMERA_LS_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(CHIMERA_LS_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(CHIMERA_LS_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(CHIMERA_LS_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(CHIMERA_LS_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
@ -17,27 +21,3 @@
|
||||||
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
/*
|
|
||||||
#define LED_B 5
|
|
||||||
#define LED_R 6
|
|
||||||
#define LED_G 7
|
|
||||||
|
|
||||||
#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
|
|
||||||
#define red_led_on PORTF |= (1<<LED_R)
|
|
||||||
#define red_led_off PORTF &= ~(1<<LED_R)
|
|
||||||
#define grn_led_on PORTF |= (1<<LED_G)
|
|
||||||
#define grn_led_off PORTF &= ~(1<<LED_G)
|
|
||||||
#define blu_led_on PORTF |= (1<<LED_B)
|
|
||||||
#define blu_led_off PORTF &= ~(1<<LED_B)
|
|
||||||
|
|
||||||
#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
|
|
||||||
#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
|
|
||||||
#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
*/
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
#include "chimera_ortho.h"
|
#include "chimera_ortho.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
DDRD |= (1<<1);
|
gpio_set_pin_output(CHIMERA_ORTHO_GREEN_LED_PIN);
|
||||||
PORTD |= (1<<1);
|
gpio_write_pin_high(CHIMERA_ORTHO_GREEN_LED_PIN);
|
||||||
DDRF |= (1<<4) | (1<<5);
|
gpio_set_pin_output(CHIMERA_ORTHO_BLUE_LED_PIN);
|
||||||
PORTF |= (1<<4) | (1<<5);
|
gpio_write_pin_high(CHIMERA_ORTHO_BLUE_LED_PIN);
|
||||||
|
gpio_set_pin_output(CHIMERA_ORTHO_RED_LED_PIN);
|
||||||
|
gpio_write_pin_high(CHIMERA_ORTHO_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off PORTF |= (1<<5)
|
#define CHIMERA_ORTHO_RED_LED_PIN F5
|
||||||
#define red_led_on PORTF &= ~(1<<5)
|
#define CHIMERA_ORTHO_GREEN_LED_PIN D1
|
||||||
#define blu_led_off PORTF |= (1<<4)
|
#define CHIMERA_ORTHO_BLUE_LED_PIN F4
|
||||||
#define blu_led_on PORTF &= ~(1<<4)
|
|
||||||
#define grn_led_off PORTD |= (1<<1)
|
#define red_led_off gpio_write_pin_high(CHIMERA_ORTHO_RED_LED_PIN)
|
||||||
#define grn_led_on PORTD &= ~(1<<1)
|
#define red_led_on gpio_write_pin_low(CHIMERA_ORTHO_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(CHIMERA_ORTHO_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(CHIMERA_ORTHO_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(CHIMERA_ORTHO_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(CHIMERA_ORTHO_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
@ -17,27 +21,3 @@
|
||||||
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
/*
|
|
||||||
#define LED_B 5
|
|
||||||
#define LED_R 6
|
|
||||||
#define LED_G 7
|
|
||||||
|
|
||||||
#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
|
|
||||||
#define red_led_on PORTF |= (1<<LED_R)
|
|
||||||
#define red_led_off PORTF &= ~(1<<LED_R)
|
|
||||||
#define grn_led_on PORTF |= (1<<LED_G)
|
|
||||||
#define grn_led_off PORTF &= ~(1<<LED_G)
|
|
||||||
#define blu_led_on PORTF |= (1<<LED_B)
|
|
||||||
#define blu_led_off PORTF &= ~(1<<LED_B)
|
|
||||||
|
|
||||||
#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
|
|
||||||
#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
|
|
||||||
#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
*/
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#include "chimera_ortho_plus.h"
|
#include "chimera_ortho_plus.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
setPinOutput(D1);
|
gpio_set_pin_output(CHIMERA_ORTHO_PLUS_GREEN_LED_PIN);
|
||||||
setPinOutput(F4);
|
gpio_set_pin_output(CHIMERA_ORTHO_PLUS_BLUE_LED_PIN);
|
||||||
setPinOutput(F5);
|
gpio_set_pin_output(CHIMERA_ORTHO_PLUS_RED_LED_PIN);
|
||||||
writePinHigh(D1);
|
gpio_write_pin_high(CHIMERA_ORTHO_PLUS_GREEN_LED_PIN);
|
||||||
writePinHigh(F4);
|
gpio_write_pin_high(CHIMERA_ORTHO_PLUS_BLUE_LED_PIN);
|
||||||
writePinHigh(F5);
|
gpio_write_pin_high(CHIMERA_ORTHO_PLUS_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off PORTF |= (1<<5)
|
#define CHIMERA_ORTHO_PLUS_RED_LED_PIN F5
|
||||||
#define red_led_on PORTF &= ~(1<<5)
|
#define CHIMERA_ORTHO_PLUS_GREEN_LED_PIN D1
|
||||||
#define blu_led_off PORTF |= (1<<4)
|
#define CHIMERA_ORTHO_PLUS_BLUE_LED_PIN F4
|
||||||
#define blu_led_on PORTF &= ~(1<<4)
|
|
||||||
#define grn_led_off PORTD |= (1<<1)
|
#define red_led_off gpio_write_pin_high(CHIMERA_ORTHO_PLUS_RED_LED_PIN)
|
||||||
#define grn_led_on PORTD &= ~(1<<1)
|
#define red_led_on gpio_write_pin_low(CHIMERA_ORTHO_PLUS_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(CHIMERA_ORTHO_PLUS_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(CHIMERA_ORTHO_PLUS_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(CHIMERA_ORTHO_PLUS_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(CHIMERA_ORTHO_PLUS_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
|
|
@ -100,21 +100,19 @@ bool led_update_user(led_t led_state)
|
||||||
{
|
{
|
||||||
if (led_state.caps_lock) {
|
if (led_state.caps_lock) {
|
||||||
// output high
|
// output high
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRD &= ~(1<<6);
|
gpio_set_pin_input(D6);
|
||||||
PORTD &= ~(1<<6);
|
|
||||||
}
|
}
|
||||||
if (led_state.num_lock) {
|
if (led_state.num_lock) {
|
||||||
// output low
|
// output low
|
||||||
DDRC |= (1<<7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC |= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRC &= ~(1<<7);
|
gpio_set_pin_input(C7);
|
||||||
PORTC &= ~(1<<7);
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
k19, k1A, k17 \
|
k19, k1A, k17 \
|
||||||
) { \
|
) { \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A }, \
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, XXX, k19, k1A } \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, KC_NO, k19, k1A } \
|
||||||
}
|
}
|
||||||
|
|
||||||
enum layers {
|
enum layers {
|
||||||
|
@ -113,21 +113,19 @@ bool led_update_user(led_t led_state)
|
||||||
{
|
{
|
||||||
if (led_state.caps_lock) {
|
if (led_state.caps_lock) {
|
||||||
// output high
|
// output high
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRD &= ~(1<<6);
|
gpio_set_pin_input(D6);
|
||||||
PORTD &= ~(1<<6);
|
|
||||||
}
|
}
|
||||||
if (led_state.num_lock) {
|
if (led_state.num_lock) {
|
||||||
// output low
|
// output low
|
||||||
DDRC |= (1<<7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC |= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRC &= ~(1<<7);
|
gpio_set_pin_input(C7);
|
||||||
PORTC &= ~(1<<7);
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,21 +100,19 @@ bool led_update_user(led_t led_state)
|
||||||
{
|
{
|
||||||
if (led_state.caps_lock) {
|
if (led_state.caps_lock) {
|
||||||
// output high
|
// output high
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRD &= ~(1<<6);
|
gpio_set_pin_input(D6);
|
||||||
PORTD &= ~(1<<6);
|
|
||||||
}
|
}
|
||||||
if (led_state.num_lock) {
|
if (led_state.num_lock) {
|
||||||
// output low
|
// output low
|
||||||
DDRC |= (1<<7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC |= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
} else {
|
} else {
|
||||||
// Hi-Z
|
// Hi-Z
|
||||||
DDRC &= ~(1<<7);
|
gpio_set_pin_input(C7);
|
||||||
PORTC &= ~(1<<7);
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
|
|
||||||
// Turn status LED on
|
// Turn status LED on
|
||||||
//DDRE |= (1<<6);
|
//gpio_set_pin_output(E6);
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
};
|
};
|
||||||
|
|
|
@ -99,27 +99,27 @@ static void select_row(uint8_t row) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (row & (1<<0)) {
|
if (row & (1<<0)) {
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
} else {
|
} else {
|
||||||
PORTE &= ~(1<<6);
|
gpio_write_pin_low(E6);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (row & (1<<1)) {
|
if (row & (1<<1)) {
|
||||||
PORTB |= (1<<7);
|
gpio_write_pin_high(B7);
|
||||||
} else {
|
} else {
|
||||||
PORTB &= ~(1<<7);
|
gpio_write_pin_low(B7);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (row & (1<<2)) {
|
if (row & (1<<2)) {
|
||||||
PORTD |= (1<<0);
|
gpio_write_pin_high(D0);
|
||||||
} else {
|
} else {
|
||||||
PORTD &= ~(1<<0);
|
gpio_write_pin_low(D0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (row & (1<<3)) {
|
if (row & (1<<3)) {
|
||||||
PORTD |= (1<<1);
|
gpio_write_pin_high(D1);
|
||||||
} else {
|
} else {
|
||||||
PORTD &= ~(1<<1);
|
gpio_write_pin_low(D1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,11 @@ extern inline void frenchdev_board_led_on(void);
|
||||||
extern inline void frenchdev_led_1_on(void);
|
extern inline void frenchdev_led_1_on(void);
|
||||||
extern inline void frenchdev_led_2_on(void);
|
extern inline void frenchdev_led_2_on(void);
|
||||||
extern inline void frenchdev_led_3_on(void);
|
extern inline void frenchdev_led_3_on(void);
|
||||||
extern inline void frenchdev_led_on(uint8_t led);
|
|
||||||
|
|
||||||
extern inline void frenchdev_board_led_off(void);
|
extern inline void frenchdev_board_led_off(void);
|
||||||
extern inline void frenchdev_led_1_off(void);
|
extern inline void frenchdev_led_1_off(void);
|
||||||
extern inline void frenchdev_led_2_off(void);
|
extern inline void frenchdev_led_2_off(void);
|
||||||
extern inline void frenchdev_led_3_off(void);
|
extern inline void frenchdev_led_3_off(void);
|
||||||
extern inline void frenchdev_led_off(uint8_t led);
|
|
||||||
|
|
||||||
extern inline void frenchdev_led_all_on(void);
|
extern inline void frenchdev_led_all_on(void);
|
||||||
extern inline void frenchdev_led_all_off(void);
|
extern inline void frenchdev_led_all_off(void);
|
||||||
|
@ -32,12 +30,11 @@ void matrix_init_kb(void) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// unused pins - D4, D5, D7, E6
|
// unused pins - D4, D5, E6
|
||||||
// set as input with internal pull-ip enabled
|
// set as input with internal pull-ip enabled
|
||||||
DDRD &= ~(1<<5 | 1<<4);
|
gpio_set_pin_input_high(D4);
|
||||||
DDRE &= ~(1<<6);
|
gpio_set_pin_input_high(D5);
|
||||||
PORTD |= (1<<5 | 1<<4);
|
gpio_set_pin_input_high(E6);
|
||||||
PORTE |= (1<<6);
|
|
||||||
|
|
||||||
frenchdev_blink_all_leds();
|
frenchdev_blink_all_leds();
|
||||||
frenchdev_blink_all_leds();
|
frenchdev_blink_all_leds();
|
||||||
|
|
|
@ -27,18 +27,40 @@ uint8_t init_mcp23018(void);
|
||||||
#define LED_BRIGHTNESS_LO 15
|
#define LED_BRIGHTNESS_LO 15
|
||||||
#define LED_BRIGHTNESS_HI 255
|
#define LED_BRIGHTNESS_HI 255
|
||||||
|
|
||||||
|
#define FRENCHDEV_BOARD_LED_PIN D6
|
||||||
|
#define FRENCHDEV_LED_1_PIN B5
|
||||||
|
#define FRENCHDEV_LED_2_PIN B6
|
||||||
|
#define FRENCHDEV_LED_3_PIN B7
|
||||||
|
|
||||||
inline void frenchdev_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); }
|
inline void frenchdev_board_led_on(void) {
|
||||||
inline void frenchdev_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); }
|
gpio_set_pin_output(FRENCHDEV_BOARD_LED_PIN);
|
||||||
inline void frenchdev_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); }
|
gpio_write_pin_high(FRENCHDEV_BOARD_LED_PIN);
|
||||||
inline void frenchdev_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); }
|
}
|
||||||
inline void frenchdev_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); }
|
inline void frenchdev_led_1_on(void) {
|
||||||
|
gpio_set_pin_output(FRENCHDEV_LED_1_PIN);
|
||||||
|
gpio_write_pin_high(FRENCHDEV_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void frenchdev_led_2_on(void) {
|
||||||
|
gpio_set_pin_output(FRENCHDEV_LED_2_PIN);
|
||||||
|
gpio_write_pin_high(FRENCHDEV_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void frenchdev_led_3_on(void) {
|
||||||
|
gpio_set_pin_output(FRENCHDEV_LED_3_PIN);
|
||||||
|
gpio_write_pin_high(FRENCHDEV_LED_3_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void frenchdev_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); }
|
inline void frenchdev_board_led_off(void) {
|
||||||
inline void frenchdev_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); }
|
gpio_set_pin_input(FRENCHDEV_BOARD_LED_PIN);
|
||||||
inline void frenchdev_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); }
|
}
|
||||||
inline void frenchdev_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); }
|
inline void frenchdev_led_1_off(void) {
|
||||||
inline void frenchdev_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); }
|
gpio_set_pin_input(FRENCHDEV_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void frenchdev_led_2_off(void) {
|
||||||
|
gpio_set_pin_input(FRENCHDEV_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void frenchdev_led_3_off(void) {
|
||||||
|
gpio_set_pin_input(FRENCHDEV_LED_3_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void frenchdev_led_all_on(void)
|
inline void frenchdev_led_all_on(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -213,8 +213,12 @@ static void init_cols(void)
|
||||||
|
|
||||||
// init on teensy
|
// init on teensy
|
||||||
// Input with pull-up(DDR:0, PORT:1)
|
// Input with pull-up(DDR:0, PORT:1)
|
||||||
DDRF &= ~(1<<7 | 1<<6 | 1<<5 | 1<<4 | 1<<1 | 1<<0);
|
gpio_set_pin_input_high(F0);
|
||||||
PORTF |= (1<<7 | 1<<6 | 1<<5 | 1<<4 | 1<<1 | 1<<0);
|
gpio_set_pin_input_high(F1);
|
||||||
|
gpio_set_pin_input_high(F4);
|
||||||
|
gpio_set_pin_input_high(F5);
|
||||||
|
gpio_set_pin_input_high(F6);
|
||||||
|
gpio_set_pin_input_high(F7);
|
||||||
}
|
}
|
||||||
|
|
||||||
static matrix_row_t read_cols(uint8_t row)
|
static matrix_row_t read_cols(uint8_t row)
|
||||||
|
@ -265,12 +269,14 @@ static void unselect_rows(void)
|
||||||
|
|
||||||
// unselect on teensy
|
// unselect on teensy
|
||||||
// Hi-Z(DDR:0, PORT:0) to unselect
|
// Hi-Z(DDR:0, PORT:0) to unselect
|
||||||
DDRB &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3);
|
gpio_set_pin_input(B0);
|
||||||
PORTB &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3);
|
gpio_set_pin_input(B1);
|
||||||
DDRD &= ~(1<<2 | 1<<3);
|
gpio_set_pin_input(B2);
|
||||||
PORTD &= ~(1<<2 | 1<<3);
|
gpio_set_pin_input(B3);
|
||||||
DDRC &= ~(1<<6 | 1<<7);
|
gpio_set_pin_input(D2);
|
||||||
PORTC &= ~(1<<6 | 1<<7);
|
gpio_set_pin_input(D3);
|
||||||
|
gpio_set_pin_input(C6);
|
||||||
|
gpio_set_pin_input(C7);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void select_row(uint8_t row)
|
static void select_row(uint8_t row)
|
||||||
|
@ -290,36 +296,36 @@ static void select_row(uint8_t row)
|
||||||
// Output low(DDR:1, PORT:0) to select
|
// Output low(DDR:1, PORT:0) to select
|
||||||
switch (row) {
|
switch (row) {
|
||||||
case 8:
|
case 8:
|
||||||
DDRB |= (1<<0);
|
gpio_set_pin_output(B0);
|
||||||
PORTB &= ~(1<<0);
|
gpio_write_pin_low(B0);
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
DDRB |= (1<<1);
|
gpio_set_pin_output(B1);
|
||||||
PORTB &= ~(1<<1);
|
gpio_write_pin_low(B1);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
DDRB |= (1<<2);
|
gpio_set_pin_output(B2);
|
||||||
PORTB &= ~(1<<2);
|
gpio_write_pin_low(B2);
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
DDRB |= (1<<3);
|
gpio_set_pin_output(B3);
|
||||||
PORTB &= ~(1<<3);
|
gpio_write_pin_low(B3);
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
DDRD |= (1<<2);
|
gpio_set_pin_output(D2);
|
||||||
PORTD &= ~(1<<3);
|
gpio_write_pin_low(D2);
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
DDRD |= (1<<3);
|
gpio_set_pin_output(D3);
|
||||||
PORTD &= ~(1<<3);
|
gpio_write_pin_low(D3);
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
DDRC |= (1<<7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC &= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
|
|
||||||
DDRD |= (1<<4);
|
gpio_set_pin_output(D4);
|
||||||
PORTD &= ~(1<<4);
|
gpio_write_pin_low(D4);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
|
|
||||||
|
|
|
@ -33,22 +33,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch(keycode) {
|
switch(keycode) {
|
||||||
case TO(HDN):
|
case TO(HDN):
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
PORTC |= (1 << 6); // PC6 goes high
|
gpio_write_pin_high(C6);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case TO(OSY):
|
case TO(OSY):
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
PORTC &= ~(1 << 6); // PC6 goes high
|
gpio_write_pin_low(C6);
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case TO(DEF):
|
case TO(DEF):
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
PORTD &= ~(1 << 4); // PC6 goes high
|
gpio_write_pin_low(D4);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -6,8 +6,8 @@ void matrix_init_kb(void) {
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
|
|
||||||
// Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS)
|
// Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS)
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,17 +4,46 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#define HOTDOX_BOARD_LED_PIN B7
|
||||||
|
#define HOTDOX_RIGHT_LED_1_PIN B5
|
||||||
|
#define HOTDOX_RIGHT_LED_2_PIN B6
|
||||||
|
#define HOTDOX_RIGHT_LED_3_PIN B4
|
||||||
|
|
||||||
void init_ergodox(void);
|
void init_ergodox(void);
|
||||||
|
|
||||||
inline void ergodox_board_led_on(void) { DDRB |= (1<<PB7); PORTB |= (1<<PB7); }
|
inline void ergodox_board_led_on(void) {
|
||||||
inline void ergodox_right_led_1_on(void) { DDRB |= (1<<PB5); PORTB &= ~(1<<PB5); }
|
gpio_set_pin_output(HOTDOX_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_2_on(void) { DDRB |= (1<<PB6); PORTB &= ~(1<<PB6); }
|
gpio_write_pin_high(HOTDOX_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_3_on(void) { DDRB |= (1<<PB4); PORTB &= ~(1<<PB4); }
|
}
|
||||||
|
inline void ergodox_right_led_1_on(void) {
|
||||||
|
gpio_set_pin_output(HOTDOX_RIGHT_LED_1_PIN);
|
||||||
|
gpio_write_pin_low(HOTDOX_RIGHT_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_2_on(void) {
|
||||||
|
gpio_set_pin_output(HOTDOX_RIGHT_LED_2_PIN);
|
||||||
|
gpio_write_pin_low(HOTDOX_RIGHT_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_3_on(void) {
|
||||||
|
gpio_set_pin_output(HOTDOX_RIGHT_LED_3_PIN);
|
||||||
|
gpio_write_pin_low(HOTDOX_RIGHT_LED_3_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void ergodox_board_led_off(void) { DDRB |= (1<<PB7); PORTB &= ~(1<<PB7); }
|
inline void ergodox_board_led_off(void) {
|
||||||
inline void ergodox_right_led_1_off(void) { DDRB |= (1<<PB5); PORTB |= (1<<PB5); }
|
gpio_set_pin_output(HOTDOX_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_2_off(void) { DDRB |= (1<<PB6); PORTB |= (1<<PB6); }
|
gpio_write_pin_low(HOTDOX_BOARD_LED_PIN);
|
||||||
inline void ergodox_right_led_3_off(void) { DDRB |= (1<<PB4); PORTB |= (1<<PB4); }
|
}
|
||||||
|
inline void ergodox_right_led_1_off(void) {
|
||||||
|
gpio_set_pin_output(HOTDOX_RIGHT_LED_1_PIN);
|
||||||
|
gpio_write_pin_high(HOTDOX_RIGHT_LED_1_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_2_off(void) {
|
||||||
|
gpio_set_pin_output(HOTDOX_RIGHT_LED_2_PIN);
|
||||||
|
gpio_write_pin_high(HOTDOX_RIGHT_LED_2_PIN);
|
||||||
|
}
|
||||||
|
inline void ergodox_right_led_3_off(void) {
|
||||||
|
gpio_set_pin_output(HOTDOX_RIGHT_LED_3_PIN);
|
||||||
|
gpio_write_pin_high(HOTDOX_RIGHT_LED_3_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void ergodox_right_led_on(uint8_t l) {
|
inline void ergodox_right_led_on(uint8_t l) {
|
||||||
switch (l) {
|
switch (l) {
|
||||||
|
|
|
@ -163,14 +163,15 @@ void matrix_print(void)
|
||||||
static void init_cols(void)
|
static void init_cols(void)
|
||||||
{
|
{
|
||||||
// Pro Micro
|
// Pro Micro
|
||||||
DDRB &= ~(1<<PB0 | 1<<PB1 | 1<<PB2 | 1<<PB3);
|
gpio_set_pin_input_high(B0);
|
||||||
PORTB |= (1<<PB0 | 1<<PB1 | 1<<PB2 | 1<<PB3);
|
gpio_set_pin_input_high(B1);
|
||||||
|
gpio_set_pin_input_high(B2);
|
||||||
|
gpio_set_pin_input_high(B3);
|
||||||
|
|
||||||
DDRD &= ~(1<<PD2 | 1<<PD3);
|
gpio_set_pin_input_high(D2);
|
||||||
PORTD |= (1<<PD2 | 1<<PD3);
|
gpio_set_pin_input_high(D3);
|
||||||
|
|
||||||
DDRC &= ~(1<<PC6);
|
gpio_set_pin_input_high(C6);
|
||||||
PORTC |= (1<<PC6);
|
|
||||||
|
|
||||||
left_init();
|
left_init();
|
||||||
}
|
}
|
||||||
|
@ -195,8 +196,12 @@ static matrix_row_t read_cols(uint8_t row)
|
||||||
static void unselect_rows(void)
|
static void unselect_rows(void)
|
||||||
{
|
{
|
||||||
// Pro Micro
|
// Pro Micro
|
||||||
DDRF &= ~(1<<PF7 | 1<< PF6 | 1<<PF5 | 1<<PF4 | 1<<PF1 | 1<<PF0);
|
gpio_set_pin_input(F0);
|
||||||
PORTF &= ~(1<<PF7 | 1<< PF6 | 1<<PF5 | 1<<PF4 | 1<<PF1 | 1<<PF0);
|
gpio_set_pin_input(F1);
|
||||||
|
gpio_set_pin_input(F4);
|
||||||
|
gpio_set_pin_input(F5);
|
||||||
|
gpio_set_pin_input(F6);
|
||||||
|
gpio_set_pin_input(F7);
|
||||||
|
|
||||||
left_unselect_rows();
|
left_unselect_rows();
|
||||||
}
|
}
|
||||||
|
@ -206,28 +211,28 @@ static void select_row(uint8_t row)
|
||||||
// Pro Micro
|
// Pro Micro
|
||||||
switch (row) {
|
switch (row) {
|
||||||
case 5:
|
case 5:
|
||||||
DDRF |= (1<<PF0);
|
gpio_set_pin_output(F0);
|
||||||
PORTF &= ~(1<<PF0);
|
gpio_write_pin_low(F0);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
DDRF |= (1<<PF1);
|
gpio_set_pin_output(F1);
|
||||||
PORTF &= ~(1<<PF1);
|
gpio_write_pin_low(F1);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
DDRF |= (1<<PF4);
|
gpio_set_pin_output(F4);
|
||||||
PORTF &= ~(1<<PF4);
|
gpio_write_pin_low(F4);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
DDRF |= (1<<PF5);
|
gpio_set_pin_output(F5);
|
||||||
PORTF &= ~(1<<PF5);
|
gpio_write_pin_low(F5);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
DDRF |= (1<<PF6);
|
gpio_set_pin_output(F6);
|
||||||
PORTF &= ~(1<<PF6);
|
gpio_write_pin_low(F6);
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
DDRF |= (1<<PF7);
|
gpio_set_pin_output(F7);
|
||||||
PORTF &= ~(1<<PF7);
|
gpio_write_pin_low(F7);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,12 +65,11 @@ static void set_color_all(uint8_t r, uint8_t g, uint8_t b) {
|
||||||
|
|
||||||
static void init(void) {
|
static void init(void) {
|
||||||
// Enable high current pathway to LEDs - this does violate the USB spec though! (1.6 amps...)
|
// Enable high current pathway to LEDs - this does violate the USB spec though! (1.6 amps...)
|
||||||
DDRE |= _BV(6);
|
gpio_set_pin_output(E6);
|
||||||
PORTE &= ~_BV(6);
|
gpio_write_pin_low(E6);
|
||||||
|
|
||||||
// Overcurrent check input
|
// Overcurrent check input
|
||||||
DDRB &= ~_BV(4);
|
gpio_set_pin_input(B4);
|
||||||
PORTB &= ~_BV(4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void flush(void) {
|
static void flush(void) {
|
||||||
|
|
|
@ -69,8 +69,8 @@ static int i2c_set_keyscan_interval(int hand, int delay) {
|
||||||
|
|
||||||
void matrix_init(void) {
|
void matrix_init(void) {
|
||||||
/* Ensure scanner power is on - else right hand will not work */
|
/* Ensure scanner power is on - else right hand will not work */
|
||||||
DDRC |= _BV(7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC |= _BV(7);
|
gpio_write_pin_high(C7);
|
||||||
|
|
||||||
i2c_init();
|
i2c_init();
|
||||||
i2c_set_keyscan_interval(LEFT, 2);
|
i2c_set_keyscan_interval(LEFT, 2);
|
||||||
|
|
|
@ -18,9 +18,22 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
// Functions for setting LEDs on toggle keys
|
#define KIRA75_CAPS_LOCK_LED_PIN D7
|
||||||
inline void caps_led_on(void) { DDRD |= (1<<7); PORTD &= ~(1<<7); }
|
#define KIRA75_NUM_LOCK_LED_PIN D6
|
||||||
inline void caps_led_off(void) { DDRD &= ~(1<<7); PORTD &= ~(1<<7); }
|
|
||||||
|
|
||||||
inline void num_led_on(void) { DDRD |= (1<<6); PORTD &= ~(1<<6); }
|
// Functions for setting LEDs on toggle keys
|
||||||
inline void num_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); }
|
inline void caps_led_on(void) {
|
||||||
|
gpio_set_pin_output(KIRA75_CAPS_LOCK_LED_PIN);
|
||||||
|
gpio_write_pin_low(KIRA75_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void caps_led_off(void) {
|
||||||
|
gpio_set_pin_input(KIRA75_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void num_led_on(void) {
|
||||||
|
gpio_set_pin_output(KIRA75_NUM_LOCK_LED_PIN);
|
||||||
|
gpio_write_pin_low(KIRA75_NUM_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void num_led_off(void) {
|
||||||
|
gpio_set_pin_input(KIRA75_NUM_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
|
|
@ -194,11 +194,13 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
|
||||||
* Caps lock uses its own pin E2
|
* Caps lock uses its own pin E2
|
||||||
*/
|
*/
|
||||||
static void init_rows(void) {
|
static void init_rows(void) {
|
||||||
DDRD &= ~((1<<0)| (1<<1) | (1<<2) | (1<<3) | (1<<5)); // IN
|
gpio_set_pin_input(D0);
|
||||||
PORTD &= ~((1<<0)| (1<<1) | (1<<2) | (1<<3) | (1<<5)); // LO
|
gpio_set_pin_input(D1);
|
||||||
|
gpio_set_pin_input(D2);
|
||||||
|
gpio_set_pin_input(D3);
|
||||||
|
gpio_set_pin_input(D5);
|
||||||
|
|
||||||
DDRE &= ~(1<<2); // IN
|
gpio_set_pin_input_high(E2);
|
||||||
PORTE |= (1<<2); // HI
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Columns 0 - 16
|
/* Columns 0 - 16
|
||||||
|
@ -224,87 +226,103 @@ static void init_rows(void) {
|
||||||
* col 16: B4
|
* col 16: B4
|
||||||
*/
|
*/
|
||||||
static void unselect_cols(void) {
|
static void unselect_cols(void) {
|
||||||
DDRB |= (1<<5) | (1<<6) | (1<<0) | (1<<7) | (1<<4); // OUT
|
gpio_set_pin_output(B0);
|
||||||
PORTB &= ~((1<<5) | (1<<6) | (1<<0) | (1<<7) | (1<<4)); // LO
|
gpio_set_pin_output(B4);
|
||||||
|
gpio_set_pin_output(B5);
|
||||||
|
gpio_set_pin_output(B6);
|
||||||
|
gpio_set_pin_output(B7);
|
||||||
|
gpio_write_pin_low(B0);
|
||||||
|
gpio_write_pin_low(B4);
|
||||||
|
gpio_write_pin_low(B5);
|
||||||
|
gpio_write_pin_low(B6);
|
||||||
|
gpio_write_pin_low(B7);
|
||||||
|
|
||||||
DDRD |= (1<<4) | (1<<6) | (1<<7); // OUT
|
gpio_set_pin_output(D4);
|
||||||
PORTD &= ~((1<<4) | (1<<6) | (1<<7)); // LO
|
gpio_set_pin_output(D6);
|
||||||
|
gpio_set_pin_output(D7);
|
||||||
|
gpio_write_pin_low(D4);
|
||||||
|
gpio_write_pin_low(D6);
|
||||||
|
gpio_write_pin_low(D7);
|
||||||
|
|
||||||
DDRE |= (1<<6); // OUT
|
gpio_set_pin_output(E6);
|
||||||
PORTE &= ~((1<<6)); // LO
|
gpio_write_pin_low(E6);
|
||||||
|
|
||||||
DDRF |= (1<<0) | (1<<1); // OUT
|
gpio_set_pin_output(F0);
|
||||||
PORTF &= ~((1<<0) | (1<<1)); // LO
|
gpio_set_pin_output(F1);
|
||||||
|
gpio_write_pin_low(F0);
|
||||||
|
gpio_write_pin_low(F1);
|
||||||
|
|
||||||
DDRC |= (1<<7) | (1<<6); // OUT
|
gpio_set_pin_output(C6);
|
||||||
PORTC &= ~((1<<7) | (1<<6)); // LO
|
gpio_set_pin_output(C7);
|
||||||
|
gpio_write_pin_low(C6);
|
||||||
|
gpio_write_pin_low(C7);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void select_col(uint8_t col)
|
static void select_col(uint8_t col)
|
||||||
{
|
{
|
||||||
switch (col) {
|
switch (col) {
|
||||||
case 0:
|
case 0:
|
||||||
PORTB |= (1<<5); // HI
|
gpio_write_pin_high(B5); // HI
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
PORTB |= (1<<6); // HI
|
gpio_write_pin_high(B6); // HI
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTF |= (1<<0); // HI
|
gpio_write_pin_high(F0); // HI
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTF |= (1<<1); // HI
|
gpio_write_pin_high(F1); // HI
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTF |= (1<<0); // HI
|
gpio_write_pin_high(F0); // HI
|
||||||
PORTF |= (1<<1); // HI
|
gpio_write_pin_high(F1); // HI
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTC |= (1<<7); // HI
|
gpio_write_pin_high(C7); // HI
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTF |= (1<<0); // HI
|
gpio_write_pin_high(F0); // HI
|
||||||
PORTC |= (1<<7); // HI
|
gpio_write_pin_high(C7); // HI
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTF |= (1<<1); // HI
|
gpio_write_pin_high(F1); // HI
|
||||||
PORTC |= (1<<7); // HI
|
gpio_write_pin_high(C7); // HI
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
PORTC |= (1<<6); // HI
|
gpio_write_pin_high(C6); // HI
|
||||||
PORTF |= (1<<0); // HI
|
gpio_write_pin_high(F0); // HI
|
||||||
PORTF |= (1<<1); // HI
|
gpio_write_pin_high(F1); // HI
|
||||||
PORTC |= (1<<7); // HI
|
gpio_write_pin_high(C7); // HI
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
PORTE |= (1<<6); // HI
|
gpio_write_pin_high(E6); // HI
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
PORTB |= (1<<0); // HI
|
gpio_write_pin_high(B0); // HI
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
PORTB |= (1<<7); // HI
|
gpio_write_pin_high(B7); // HI
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
PORTD |= (1<<4); // HI
|
gpio_write_pin_high(D4); // HI
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
PORTD |= (1<<6); // HI
|
gpio_write_pin_high(D6); // HI
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
PORTD |= (1<<7); // HI
|
gpio_write_pin_high(D7); // HI
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
PORTB |= (1<<4); // HI
|
gpio_write_pin_high(B4); // HI
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,51 +135,51 @@ void set_switch_led(int ledId, bool state) {
|
||||||
if(state) {
|
if(state) {
|
||||||
switch(ledId) {
|
switch(ledId) {
|
||||||
case 1:
|
case 1:
|
||||||
PORTD |= (1<<7);
|
gpio_write_pin_high(D7);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if((PINB & (1 << 7)) != 0) {
|
if(gpio_read_pin(B7)) {
|
||||||
PORTC |= (1<<6);
|
gpio_write_pin_high(C6);
|
||||||
} else {
|
} else {
|
||||||
PORTC |= (1<<7);
|
gpio_write_pin_high(C7);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
PORTB |= (1<<4);
|
gpio_write_pin_high(B4);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch(ledId) {
|
switch(ledId) {
|
||||||
case 1:
|
case 1:
|
||||||
PORTD &= ~(1<<7);
|
gpio_write_pin_low(D7);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if((PINB & (1 << 7)) != 0) {
|
if(gpio_read_pin(B7)) {
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
} else {
|
} else {
|
||||||
PORTC &= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
PORTD &= ~(1<<4);
|
gpio_write_pin_low(D4);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
PORTE &= ~(1<<6);
|
gpio_write_pin_low(E6);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
PORTB &= ~(1<<4);
|
gpio_write_pin_low(B4);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
PORTD &= ~(1<<6);
|
gpio_write_pin_low(D6);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -187,88 +187,88 @@ void set_switch_led(int ledId, bool state) {
|
||||||
|
|
||||||
|
|
||||||
void set_layer_led(int layerId) {
|
void set_layer_led(int layerId) {
|
||||||
PORTD |= (1<<5);
|
gpio_write_pin_high(D5);
|
||||||
PORTB &= ~(1<<6);
|
gpio_write_pin_low(B6);
|
||||||
PORTB |= (1<<0);
|
gpio_write_pin_high(B0);
|
||||||
switch(layerId) {
|
switch(layerId) {
|
||||||
case 0:
|
case 0:
|
||||||
PORTD &= ~(1<<5);
|
gpio_write_pin_low(D5);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
PORTB |= (1<<6);
|
gpio_write_pin_high(B6);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
PORTB &= ~(1<<0);
|
gpio_write_pin_low(B0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_init_ports_user(void) {
|
void led_init_ports_user(void) {
|
||||||
// led voor switch #1
|
// led voor switch #1
|
||||||
DDRD |= (1<<7);
|
gpio_set_pin_output(D7);
|
||||||
PORTD &= ~(1<<7);
|
gpio_write_pin_low(D7);
|
||||||
|
|
||||||
// led voor switch #2
|
// led voor switch #2
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
DDRC |= (1<<7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
PORTC &= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
|
|
||||||
// led voor switch #3
|
// led voor switch #3
|
||||||
DDRD |= (1<<4);
|
gpio_set_pin_output(D4);
|
||||||
PORTD &= ~(1<<4);
|
gpio_write_pin_low(D4);
|
||||||
|
|
||||||
// led voor switch #4
|
// led voor switch #4
|
||||||
DDRE |= (1<<6);
|
gpio_set_pin_output(E6);
|
||||||
PORTE &= ~(1<<6);
|
gpio_write_pin_low(E6);
|
||||||
|
|
||||||
// led voor switch #5
|
// led voor switch #5
|
||||||
DDRB |= (1<<4);
|
gpio_set_pin_output(B4);
|
||||||
PORTB &= ~(1<<4);
|
gpio_write_pin_low(B4);
|
||||||
|
|
||||||
// led voor switch #6
|
// led voor switch #6
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD &= ~(1<<6);
|
gpio_write_pin_low(D6);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DDRD |= (1<<7);
|
gpio_set_pin_output(D7);
|
||||||
PORTD |= (1<<7);
|
gpio_write_pin_high(D7);
|
||||||
|
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
PORTC |= (1<<6);
|
gpio_write_pin_high(C6);
|
||||||
|
|
||||||
DDRD |= (1<<4);
|
gpio_set_pin_output(D4);
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
|
|
||||||
DDRE |= (1<<6);
|
gpio_set_pin_output(E6);
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
|
|
||||||
DDRB |= (1<<4);
|
gpio_set_pin_output(B4);
|
||||||
PORTB |= (1<<4);
|
gpio_write_pin_high(B4);
|
||||||
|
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
// */
|
// */
|
||||||
|
|
||||||
DDRD |= (1<<5);
|
gpio_set_pin_output(D5);
|
||||||
DDRB |= (1<<6);
|
gpio_set_pin_output(B6);
|
||||||
DDRB |= (1<<0);
|
gpio_set_pin_output(B0);
|
||||||
//led_set_layer(0);
|
//led_set_layer(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
led_init_ports_user();
|
led_init_ports_user();
|
||||||
|
|
||||||
PORTB |= (1 << 7);
|
gpio_write_pin_high(B7);
|
||||||
DDRB &= ~(1<<7);
|
gpio_set_pin_input(B7);
|
||||||
|
|
||||||
PORTD |= (1<<7);
|
gpio_write_pin_high(D7);
|
||||||
PORTC |= (1<<6);
|
gpio_write_pin_high(C6);
|
||||||
PORTC |= (1<<7);
|
gpio_write_pin_high(C7);
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
PORTB |= (1<<4);
|
gpio_write_pin_high(B4);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
|
|
||||||
set_layer_led(0);
|
set_layer_led(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,51 +61,51 @@ void set_switch_led(int ledId, bool state) {
|
||||||
if(state) {
|
if(state) {
|
||||||
switch(ledId) {
|
switch(ledId) {
|
||||||
case 1:
|
case 1:
|
||||||
PORTD |= (1<<7);
|
gpio_write_pin_high(D7);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if((PINB & (1 << 7)) != 0) {
|
if(gpio_read_pin(B7)) {
|
||||||
PORTC |= (1<<6);
|
gpio_write_pin_high(C6);
|
||||||
} else {
|
} else {
|
||||||
PORTC |= (1<<7);
|
gpio_write_pin_high(C7);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
PORTB |= (1<<4);
|
gpio_write_pin_high(B4);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch(ledId) {
|
switch(ledId) {
|
||||||
case 1:
|
case 1:
|
||||||
PORTD &= ~(1<<7);
|
gpio_write_pin_low(D7);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if((PINB & (1 << 7)) != 0) {
|
if(gpio_read_pin(B7)) {
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
} else {
|
} else {
|
||||||
PORTC &= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
PORTD &= ~(1<<4);
|
gpio_write_pin_low(D4);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
PORTE &= ~(1<<6);
|
gpio_write_pin_low(E6);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
PORTB &= ~(1<<4);
|
gpio_write_pin_low(B4);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
PORTD &= ~(1<<6);
|
gpio_write_pin_low(D6);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,88 +113,88 @@ void set_switch_led(int ledId, bool state) {
|
||||||
|
|
||||||
|
|
||||||
void set_layer_led(int layerId) {
|
void set_layer_led(int layerId) {
|
||||||
PORTD |= (1<<5);
|
gpio_write_pin_high(D5);
|
||||||
PORTB &= ~(1<<6);
|
gpio_write_pin_low(B6);
|
||||||
PORTB |= (1<<0);
|
gpio_write_pin_high(B0);
|
||||||
switch(layerId) {
|
switch(layerId) {
|
||||||
case 0:
|
case 0:
|
||||||
PORTD &= ~(1<<5);
|
gpio_write_pin_low(D5);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
PORTB |= (1<<6);
|
gpio_write_pin_high(B6);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
PORTB &= ~(1<<0);
|
gpio_write_pin_low(B0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_init_ports_user(void) {
|
void led_init_ports_user(void) {
|
||||||
// led voor switch #1
|
// led voor switch #1
|
||||||
DDRD |= (1<<7);
|
gpio_set_pin_output(D7);
|
||||||
PORTD &= ~(1<<7);
|
gpio_write_pin_low(D7);
|
||||||
|
|
||||||
// led voor switch #2
|
// led voor switch #2
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
DDRC |= (1<<7);
|
gpio_set_pin_output(C7);
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(C6);
|
||||||
PORTC &= ~(1<<7);
|
gpio_write_pin_low(C7);
|
||||||
|
|
||||||
// led voor switch #3
|
// led voor switch #3
|
||||||
DDRD |= (1<<4);
|
gpio_set_pin_output(D4);
|
||||||
PORTD &= ~(1<<4);
|
gpio_write_pin_low(D4);
|
||||||
|
|
||||||
// led voor switch #4
|
// led voor switch #4
|
||||||
DDRE |= (1<<6);
|
gpio_set_pin_output(E6);
|
||||||
PORTE &= ~(1<<6);
|
gpio_write_pin_low(E6);
|
||||||
|
|
||||||
// led voor switch #5
|
// led voor switch #5
|
||||||
DDRB |= (1<<4);
|
gpio_set_pin_output(B4);
|
||||||
PORTB &= ~(1<<4);
|
gpio_write_pin_low(B4);
|
||||||
|
|
||||||
// led voor switch #6
|
// led voor switch #6
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD &= ~(1<<6);
|
gpio_write_pin_low(D6);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DDRD |= (1<<7);
|
gpio_set_pin_output(D7);
|
||||||
PORTD |= (1<<7);
|
gpio_write_pin_high(D7);
|
||||||
|
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(C6);
|
||||||
PORTC |= (1<<6);
|
gpio_write_pin_high(C6);
|
||||||
|
|
||||||
DDRD |= (1<<4);
|
gpio_set_pin_output(D4);
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
|
|
||||||
DDRE |= (1<<6);
|
gpio_set_pin_output(E6);
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
|
|
||||||
DDRB |= (1<<4);
|
gpio_set_pin_output(B4);
|
||||||
PORTB |= (1<<4);
|
gpio_write_pin_high(B4);
|
||||||
|
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
// */
|
// */
|
||||||
|
|
||||||
DDRD |= (1<<5);
|
gpio_set_pin_output(D5);
|
||||||
DDRB |= (1<<6);
|
gpio_set_pin_output(B6);
|
||||||
DDRB |= (1<<0);
|
gpio_set_pin_output(B0);
|
||||||
//led_set_layer(0);
|
//led_set_layer(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
led_init_ports_user();
|
led_init_ports_user();
|
||||||
|
|
||||||
PORTB |= (1 << 7);
|
gpio_write_pin_high(B7);
|
||||||
DDRB &= ~(1<<7);
|
gpio_set_pin_input(B7);
|
||||||
|
|
||||||
PORTD |= (1<<7);
|
gpio_write_pin_high(D7);
|
||||||
PORTC |= (1<<6);
|
gpio_write_pin_high(C6);
|
||||||
PORTC |= (1<<7);
|
gpio_write_pin_high(C7);
|
||||||
PORTD |= (1<<4);
|
gpio_write_pin_high(D4);
|
||||||
PORTE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
PORTB |= (1<<4);
|
gpio_write_pin_high(B4);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
|
|
||||||
set_layer_led(0);
|
set_layer_led(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
#include "the50.h"
|
#include "the50.h"
|
||||||
|
|
||||||
|
#define THE50_LED_PIN B7
|
||||||
|
|
||||||
void the50_led_on(void) {
|
void the50_led_on(void) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
gpio_set_pin_output(THE50_LED_PIN);
|
||||||
|
gpio_write_pin_low(THE50_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void the50_led_off(void) {
|
void the50_led_off(void) {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
gpio_set_pin_input(THE50_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
#include "mitosis.h"
|
#include "mitosis.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
DDRD |= (1<<1); // Pin to green, set as output
|
gpio_set_pin_output(MITOSIS_GREEN_LED_PIN);
|
||||||
PORTD |= (1<<1); // Turn it off
|
gpio_write_pin_high(MITOSIS_GREEN_LED_PIN);
|
||||||
DDRF |= (1<<4) | (1<<5); // Pins to red and blue, set as output
|
gpio_set_pin_output(MITOSIS_BLUE_LED_PIN);
|
||||||
PORTF |= (1<<4) | (1<<5); // Turn them off
|
gpio_write_pin_high(MITOSIS_BLUE_LED_PIN);
|
||||||
|
gpio_set_pin_output(MITOSIS_RED_LED_PIN);
|
||||||
|
gpio_write_pin_high(MITOSIS_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off PORTF |= (1<<5)
|
#define MITOSIS_RED_LED_PIN F5
|
||||||
#define red_led_on PORTF &= ~(1<<5)
|
#define MITOSIS_GREEN_LED_PIN D1
|
||||||
#define blu_led_off PORTF |= (1<<4)
|
#define MITOSIS_BLUE_LED_PIN F4
|
||||||
#define blu_led_on PORTF &= ~(1<<4)
|
|
||||||
#define grn_led_off PORTD |= (1<<1)
|
#define red_led_off gpio_write_pin_high(MITOSIS_RED_LED_PIN)
|
||||||
#define grn_led_on PORTD &= ~(1<<1)
|
#define red_led_on gpio_write_pin_low(MITOSIS_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(MITOSIS_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(MITOSIS_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(MITOSIS_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(MITOSIS_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
@ -17,27 +21,3 @@
|
||||||
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
/*
|
|
||||||
#define LED_B 5
|
|
||||||
#define LED_R 6
|
|
||||||
#define LED_G 7
|
|
||||||
|
|
||||||
#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
|
|
||||||
#define red_led_on PORTF |= (1<<LED_R)
|
|
||||||
#define red_led_off PORTF &= ~(1<<LED_R)
|
|
||||||
#define grn_led_on PORTF |= (1<<LED_G)
|
|
||||||
#define grn_led_off PORTF &= ~(1<<LED_G)
|
|
||||||
#define blu_led_on PORTF |= (1<<LED_B)
|
|
||||||
#define blu_led_off PORTF &= ~(1<<LED_B)
|
|
||||||
|
|
||||||
#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
|
|
||||||
#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
|
|
||||||
#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
*/
|
|
||||||
|
|
|
@ -72,10 +72,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
bool led_update_user(led_t led_state) {
|
bool led_update_user(led_t led_state) {
|
||||||
if (led_state.caps_lock) {
|
if (led_state.caps_lock) {
|
||||||
DDRB |= (1 << 6); PORTB |= (1 << 6);
|
gpio_set_pin_output(B6);
|
||||||
|
gpio_write_pin_high(B6);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DDRB &= ~(1 << 6); PORTB &= ~(1 << 6);
|
gpio_set_pin_input(B6);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
|
#define ORG60_CAPS_LOCK_LED_PIN B2
|
||||||
|
#define ORG60_BACKLIGHT_PIN F5
|
||||||
|
|
||||||
/* Org60 LEDs
|
/* Org60 LEDs
|
||||||
* GPIO pads
|
* GPIO pads
|
||||||
* 0 F7 not connected
|
* 0 F7 not connected
|
||||||
|
@ -12,8 +15,18 @@
|
||||||
* B2 Capslock LED
|
* B2 Capslock LED
|
||||||
* B0 not connected
|
* B0 not connected
|
||||||
*/
|
*/
|
||||||
inline void org60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
|
inline void org60_caps_led_on(void) {
|
||||||
inline void org60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
|
gpio_set_pin_output(ORG60_CAPS_LOCK_LED_PIN);
|
||||||
|
gpio_write_pin_low(ORG60_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void org60_bl_led_on(void) {
|
||||||
|
gpio_set_pin_output(ORG60_BACKLIGHT_PIN);
|
||||||
|
gpio_write_pin_low(ORG60_BACKLIGHT_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void org60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
|
inline void org60_caps_led_off(void) {
|
||||||
inline void org60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
|
gpio_set_pin_input(ORG60_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void org60_bl_led_off(void) {
|
||||||
|
gpio_set_pin_input(ORG60_BACKLIGHT_PIN);
|
||||||
|
}
|
||||||
|
|
|
@ -99,8 +99,8 @@ led_config_t g_led_config = { {
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
|
|
||||||
// Turn status LED on
|
// Turn status LED on
|
||||||
DDRD |= (1<<6);
|
gpio_set_pin_output(D6);
|
||||||
PORTD |= (1<<6);
|
gpio_write_pin_high(D6);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,18 +146,20 @@ layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
|
||||||
// settings for LED on receiver
|
// settings for LED on receiver
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
DDRD |= (1<<1);
|
gpio_set_pin_output(D1);
|
||||||
PORTD |= (1<<1);
|
gpio_write_pin_high(D1);
|
||||||
DDRF |= (1<<4) | (1<<5);
|
gpio_set_pin_output(F4);
|
||||||
PORTF |= (1<<4) | (1<<5);
|
gpio_write_pin_high(F4);
|
||||||
|
gpio_set_pin_output(F5);
|
||||||
|
gpio_write_pin_high(F5);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define red_led_off PORTF |= (1<<5)
|
#define red_led_off gpio_write_pin_high(F5)
|
||||||
#define red_led_on PORTF &= ~(1<<5)
|
#define red_led_on gpio_write_pin_low(F5)
|
||||||
#define blu_led_off PORTF |= (1<<4)
|
#define blu_led_off gpio_write_pin_high(F4)
|
||||||
#define blu_led_on PORTF &= ~(1<<4)
|
#define blu_led_on gpio_write_pin_low(F4)
|
||||||
#define grn_led_off PORTD |= (1<<1)
|
#define grn_led_off gpio_write_pin_high(D1)
|
||||||
#define grn_led_on PORTD &= ~(1<<1)
|
#define grn_led_on gpio_write_pin_low(D1)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#include "rev1.h"
|
#include "rev1.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
setPinOutput(D1); // Pin to green, set as output
|
gpio_set_pin_output(UNI660_GREEN_LED_PIN);
|
||||||
writePinHigh(D1); // Turn it off
|
gpio_write_pin_high(UNI660_GREEN_LED_PIN);
|
||||||
setPinOutput(F4); // Pins to red and blue, set as output
|
gpio_set_pin_output(UNI660_BLUE_LED_PIN);
|
||||||
setPinOutput(F5);
|
gpio_write_pin_high(UNI660_BLUE_LED_PIN);
|
||||||
writePinHigh(F4); // Turn them off
|
gpio_set_pin_output(UNI660_RED_LED_PIN);
|
||||||
writePinHigh(F5);
|
gpio_write_pin_high(UNI660_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off writePinHigh(F5)
|
#define UNI660_RED_LED_PIN F5
|
||||||
#define red_led_on writePinLow(F5)
|
#define UNI660_GREEN_LED_PIN D1
|
||||||
#define blu_led_off writePinHigh(F4)
|
#define UNI660_BLUE_LED_PIN F4
|
||||||
#define blu_led_on writePinLow(F4)
|
|
||||||
#define grn_led_off writePinHigh(D1)
|
#define red_led_off gpio_write_pin_high(UNI660_RED_LED_PIN)
|
||||||
#define grn_led_on writePinLow(D1)
|
#define red_led_on gpio_write_pin_low(UNI660_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(UNI660_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(UNI660_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(UNI660_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(UNI660_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
@ -17,27 +21,3 @@
|
||||||
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
/*
|
|
||||||
#define LED_B 5
|
|
||||||
#define LED_R 6
|
|
||||||
#define LED_G 7
|
|
||||||
|
|
||||||
#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
|
|
||||||
#define red_led_on PORTF |= (1<<LED_R)
|
|
||||||
#define red_led_off PORTF &= ~(1<<LED_R)
|
|
||||||
#define grn_led_on PORTF |= (1<<LED_G)
|
|
||||||
#define grn_led_off PORTF &= ~(1<<LED_G)
|
|
||||||
#define blu_led_on PORTF |= (1<<LED_B)
|
|
||||||
#define blu_led_off PORTF &= ~(1<<LED_B)
|
|
||||||
|
|
||||||
#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
|
|
||||||
#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
|
|
||||||
#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
*/
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#include "rev2.h"
|
#include "rev2.h"
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
setPinOutput(D1); // Pin to green, set as output
|
gpio_set_pin_output(UNI660_GREEN_LED_PIN);
|
||||||
writePinHigh(D1); // Turn it off
|
gpio_write_pin_high(UNI660_GREEN_LED_PIN);
|
||||||
setPinOutput(F4); // Pins to red and blue, set as output
|
gpio_set_pin_output(UNI660_BLUE_LED_PIN);
|
||||||
setPinOutput(F5);
|
gpio_write_pin_high(UNI660_BLUE_LED_PIN);
|
||||||
writePinHigh(F4); // Turn them off
|
gpio_set_pin_output(UNI660_RED_LED_PIN);
|
||||||
writePinHigh(F5);
|
gpio_write_pin_high(UNI660_RED_LED_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
void matrix_init_kb(void) {
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define red_led_off writePinHigh(F5)
|
#define UNI660_RED_LED_PIN F5
|
||||||
#define red_led_on writePinLow(F5)
|
#define UNI660_GREEN_LED_PIN D1
|
||||||
#define blu_led_off writePinHigh(F4)
|
#define UNI660_BLUE_LED_PIN F4
|
||||||
#define blu_led_on writePinLow(F4)
|
|
||||||
#define grn_led_off writePinHigh(D1)
|
#define red_led_off gpio_write_pin_high(UNI660_RED_LED_PIN)
|
||||||
#define grn_led_on writePinLow(D1)
|
#define red_led_on gpio_write_pin_low(UNI660_RED_LED_PIN)
|
||||||
|
#define blu_led_off gpio_write_pin_high(UNI660_BLUE_LED_PIN)
|
||||||
|
#define blu_led_on gpio_write_pin_low(UNI660_BLUE_LED_PIN)
|
||||||
|
#define grn_led_off gpio_write_pin_high(UNI660_GREEN_LED_PIN)
|
||||||
|
#define grn_led_on gpio_write_pin_low(UNI660_GREEN_LED_PIN)
|
||||||
|
|
||||||
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
#define set_led_off red_led_off; grn_led_off; blu_led_off
|
||||||
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
#define set_led_red red_led_on; grn_led_off; blu_led_off
|
||||||
|
@ -17,27 +21,3 @@
|
||||||
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
#define set_led_magenta red_led_on; grn_led_off; blu_led_on
|
||||||
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
#define set_led_cyan red_led_off; grn_led_on; blu_led_on
|
||||||
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
#define set_led_white red_led_on; grn_led_on; blu_led_on
|
||||||
|
|
||||||
/*
|
|
||||||
#define LED_B 5
|
|
||||||
#define LED_R 6
|
|
||||||
#define LED_G 7
|
|
||||||
|
|
||||||
#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
|
|
||||||
#define red_led_on PORTF |= (1<<LED_R)
|
|
||||||
#define red_led_off PORTF &= ~(1<<LED_R)
|
|
||||||
#define grn_led_on PORTF |= (1<<LED_G)
|
|
||||||
#define grn_led_off PORTF &= ~(1<<LED_G)
|
|
||||||
#define blu_led_on PORTF |= (1<<LED_B)
|
|
||||||
#define blu_led_off PORTF &= ~(1<<LED_B)
|
|
||||||
|
|
||||||
#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
|
|
||||||
#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
|
|
||||||
#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
|
|
||||||
#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
|
|
||||||
#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
|
|
||||||
*/
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
#include <avr/io.h>
|
|
||||||
#include <avr/wdt.h>
|
#include <avr/wdt.h>
|
||||||
#include <avr/power.h>
|
#include <avr/power.h>
|
||||||
#include <util/delay.h>
|
|
||||||
|
|
||||||
// LUFA
|
// LUFA
|
||||||
#include "lufa.h"
|
#include "lufa.h"
|
||||||
|
@ -9,6 +7,8 @@
|
||||||
#include "sendchar.h"
|
#include "sendchar.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
|
#include "gpio.h"
|
||||||
|
#include "wait.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
/* LED ping configuration */
|
/* LED ping configuration */
|
||||||
|
@ -16,16 +16,16 @@
|
||||||
//#define LEONARDO_LED
|
//#define LEONARDO_LED
|
||||||
#if defined(TMK_LED)
|
#if defined(TMK_LED)
|
||||||
// For TMK converter and Teensy
|
// For TMK converter and Teensy
|
||||||
#define LED_TX_INIT (DDRD |= (1<<6))
|
#define LED_TX_INIT gpio_set_pin_output(D6)
|
||||||
#define LED_TX_ON (PORTD |= (1<<6))
|
#define LED_TX_ON gpio_write_pin_high(D6)
|
||||||
#define LED_TX_OFF (PORTD &= ~(1<<6))
|
#define LED_TX_OFF gpio_write_pin_low(D6)
|
||||||
#define LED_TX_TOGGLE (PORTD ^= (1<<6))
|
#define LED_TX_TOGGLE gpio_toggle_pin(D6)
|
||||||
#elif defined(LEONARDO_LED)
|
#elif defined(LEONARDO_LED)
|
||||||
// For Leonardo(TX LED)
|
// For Leonardo(TX LED)
|
||||||
#define LED_TX_INIT (DDRD |= (1<<5))
|
#define LED_TX_INIT gpio_set_pin_output(D5)
|
||||||
#define LED_TX_ON (PORTD &= ~(1<<5))
|
#define LED_TX_ON gpio_write_pin_low(D5)
|
||||||
#define LED_TX_OFF (PORTD |= (1<<5))
|
#define LED_TX_OFF gpio_write_pin_high(D5)
|
||||||
#define LED_TX_TOGGLE (PORTD ^= (1<<5))
|
#define LED_TX_TOGGLE gpio_toggle_pin(D5)
|
||||||
#else
|
#else
|
||||||
#define LED_TX_INIT
|
#define LED_TX_INIT
|
||||||
#define LED_TX_ON
|
#define LED_TX_ON
|
||||||
|
|
|
@ -71,13 +71,12 @@ uint8_t matrix_cols(void)
|
||||||
|
|
||||||
void matrix_init(void)
|
void matrix_init(void)
|
||||||
{
|
{
|
||||||
|
gpio_set_pin_input_high(C7);
|
||||||
DDRC &= ~(1<<7);
|
gpio_set_pin_input_high(B5);
|
||||||
PORTC |= (1<<7);
|
gpio_set_pin_input_high(B7);
|
||||||
DDRB &= ~(1<<7 | 1<<5);
|
gpio_set_pin_input_high(D1);
|
||||||
PORTB |= (1<<7 | 1<<5);
|
gpio_set_pin_input_high(D4);
|
||||||
DDRD &= ~(1<<6 | 1<<4 | 1<<1);
|
gpio_set_pin_input_high(D6);
|
||||||
PORTD |= (1<<6 | 1<<4 | 1<<1);
|
|
||||||
|
|
||||||
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
|
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
|
||||||
matrix[i] = 0;
|
matrix[i] = 0;
|
||||||
|
|
|
@ -4,27 +4,26 @@ void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
|
|
||||||
DDRC |= (1<<4);
|
gpio_set_pin_output(C4);
|
||||||
PORTC &= ~(1<<4);
|
gpio_write_pin_low(C4);
|
||||||
|
|
||||||
|
gpio_set_pin_output(C6);
|
||||||
|
gpio_write_pin_low(C6);
|
||||||
|
|
||||||
DDRC |= (1<<6);
|
gpio_set_pin_output(B6);
|
||||||
PORTC &= ~(1<<6);
|
gpio_write_pin_low(B6);
|
||||||
|
|
||||||
DDRB |= (1<<6);
|
gpio_set_pin_output(B4);
|
||||||
PORTB &= ~(1<<6);
|
gpio_write_pin_low(B4);
|
||||||
|
|
||||||
DDRB |= (1<<4);
|
gpio_set_pin_output(D5);
|
||||||
PORTB &= ~(1<<4);
|
gpio_write_pin_low(D5);
|
||||||
|
|
||||||
DDRD |= (1<<5);
|
gpio_set_pin_output(D2);
|
||||||
PORTD &= ~(1<<5);
|
gpio_write_pin_low(D2);
|
||||||
|
|
||||||
DDRD |= (1<<2);
|
gpio_set_pin_output(D3);
|
||||||
PORTD &= ~(1<<2);
|
gpio_write_pin_low(D3);
|
||||||
|
|
||||||
DDRD |= (1<<3);
|
|
||||||
PORTD &= ~(1<<3);
|
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
};
|
};
|
|
@ -19,14 +19,14 @@ void matrix_init_kb(void) {
|
||||||
// put your keyboard start-up code here
|
// put your keyboard start-up code here
|
||||||
// runs once when the firmware starts up
|
// runs once when the firmware starts up
|
||||||
|
|
||||||
DDRB |= (1 << PB0); //init B0
|
gpio_set_pin_output(B0);
|
||||||
PORTB &= ~(1 << PB0); //turn on B0
|
gpio_write_pin_low(B0);
|
||||||
DDRB |= (1 << PB1);
|
gpio_set_pin_output(B1);
|
||||||
PORTB |= (1<<PB1); //turn off B1
|
gpio_write_pin_high(B1);
|
||||||
DDRB |= (1 << PB2);
|
gpio_set_pin_output(B2);
|
||||||
PORTB |= (1<<PB2);
|
gpio_write_pin_high(B2);
|
||||||
DDRB |= (1 << PB3);
|
gpio_set_pin_output(B3);
|
||||||
PORTB |= (1<<PB3);
|
gpio_write_pin_high(B3);
|
||||||
|
|
||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
@ -49,32 +49,16 @@ bool process_indicator_led_kb(layer_state_t state)
|
||||||
if(process_indicator_led_user(state))
|
if(process_indicator_led_user(state))
|
||||||
{
|
{
|
||||||
// if on layer 0, turn on B0 LED, otherwise off.
|
// if on layer 0, turn on B0 LED, otherwise off.
|
||||||
if (get_highest_layer(state) == 0) {
|
gpio_write_pin(B0, get_highest_layer(state) != 0);
|
||||||
PORTB &= ~(1<<PB0);
|
|
||||||
} else {
|
|
||||||
PORTB |= (1<<PB0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if on layer 1, turn on B1 LED, otherwise off.
|
// if on layer 1, turn on B1 LED, otherwise off.
|
||||||
if (get_highest_layer(state) == 1) {
|
gpio_write_pin(B1, get_highest_layer(state) != 1);
|
||||||
PORTB &= ~(1<<PB1);
|
|
||||||
} else {
|
|
||||||
PORTB |= (1<<PB1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if on layer 2, turn on B2 LED, otherwise off.
|
// if on layer 2, turn on B2 LED, otherwise off.
|
||||||
if (get_highest_layer(state) == 2) {
|
gpio_write_pin(B2, get_highest_layer(state) != 2);
|
||||||
PORTB &= ~(1<<PB2);
|
|
||||||
} else {
|
|
||||||
PORTB |= (1<<PB2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if on layer 3, turn on B3 LED, otherwise off.
|
// if on layer 3, turn on B3 LED, otherwise off.
|
||||||
if (get_highest_layer(state) == 3) {
|
gpio_write_pin(B3, get_highest_layer(state) != 3);
|
||||||
PORTB &= ~(1<<PB3);
|
|
||||||
} else {
|
|
||||||
PORTB |= (1<<PB3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -19,9 +19,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#define RGB_STEP 16
|
#define RGB_STEP 16
|
||||||
|
|
||||||
#define RGB_RED_PIN PF6
|
#define RGB_RED_PIN F6
|
||||||
#define RGB_GREEN_PIN PF5
|
#define RGB_GREEN_PIN F5
|
||||||
#define RGB_BLUE_PIN PF4
|
#define RGB_BLUE_PIN F4
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
|
@ -115,18 +115,22 @@ void rgb_timer_init(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void rgb_init(void) {
|
void rgb_init(void) {
|
||||||
DDRF |= (_BV(PF6) | _BV(PF5) | _BV(PF4));
|
gpio_set_pin_output(F4);
|
||||||
PORTF |= (_BV(PF6) | _BV(PF5) | _BV(PF4));
|
gpio_set_pin_output(F5);
|
||||||
|
gpio_set_pin_output(F6);
|
||||||
|
gpio_write_pin_high(F4);
|
||||||
|
gpio_write_pin_high(F5);
|
||||||
|
gpio_write_pin_high(F6);
|
||||||
|
|
||||||
rgb_timer_init();
|
rgb_timer_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_rgb_pin_on(uint8_t pin) {
|
void set_rgb_pin_on(pin_t pin) {
|
||||||
PORTF &= ~_BV(pin);
|
gpio_write_pin_low(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_rgb_pin_off(uint8_t pin) {
|
void set_rgb_pin_off(pin_t pin) {
|
||||||
PORTF |= _BV(pin);
|
gpio_write_pin_high(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISR(TIMER3_COMPA_vect)
|
ISR(TIMER3_COMPA_vect)
|
||||||
|
|
|
@ -23,24 +23,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
bool led_update_user(led_t led_state) {
|
bool led_update_user(led_t led_state) {
|
||||||
DDRB |= (1 << 4) | (1 << 5) | (1 << 6);
|
gpio_set_pin_output(B4);
|
||||||
|
gpio_set_pin_output(B5);
|
||||||
|
gpio_set_pin_output(B6);
|
||||||
|
|
||||||
if (led_state.num_lock) {
|
gpio_write_pin(B4, led_state.num_lock);
|
||||||
PORTB |= (1 << 4);
|
gpio_write_pin(B5, led_state.caps_lock);
|
||||||
} else {
|
gpio_write_pin(B6, led_state.scroll_lock);
|
||||||
PORTB &= ~(1 << 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (led_state.caps_lock) {
|
|
||||||
PORTB |= (1 << 5);
|
|
||||||
} else {
|
|
||||||
PORTB &= ~(1 << 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (led_state.scroll_lock) {
|
|
||||||
PORTB |= (1 << 6);
|
|
||||||
} else {
|
|
||||||
PORTB &= ~(1 << 6);
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2629,15 +2629,12 @@ void backlight_debug_led( bool state )
|
||||||
{
|
{
|
||||||
if (state)
|
if (state)
|
||||||
{
|
{
|
||||||
// Output high.
|
gpio_set_pin_output(E6);
|
||||||
DDRE |= (1<<6);
|
gpio_write_pin_high(E6);
|
||||||
PORTE |= (1<<6);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Output low.
|
gpio_set_pin_input(E6);
|
||||||
DDRE &= ~(1<<6);
|
|
||||||
PORTE &= ~(1<<6);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // defined(RGB_DEBUGGING_ONLY)
|
#endif // defined(RGB_DEBUGGING_ONLY)
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define XD60_CAPS_LOCK_LED_PIN B2
|
||||||
|
#define XD60_BACKLIGHT_PIN F5
|
||||||
|
|
||||||
/* XD60 LEDs
|
/* XD60 LEDs
|
||||||
* GPIO pads
|
* GPIO pads
|
||||||
* 0 F7 not connected
|
* 0 F7 not connected
|
||||||
|
@ -11,8 +14,18 @@
|
||||||
* B2 Capslock LED
|
* B2 Capslock LED
|
||||||
* B0 not connected
|
* B0 not connected
|
||||||
*/
|
*/
|
||||||
inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
|
inline void xd60_caps_led_on(void) {
|
||||||
inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
|
gpio_set_pin_output(XD60_CAPS_LOCK_LED_PIN);
|
||||||
|
gpio_write_pin_low(XD60_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void xd60_bl_led_on(void) {
|
||||||
|
gpio_set_pin_output(XD60_BACKLIGHT_PIN);
|
||||||
|
gpio_write_pin_low(XD60_BACKLIGHT_PIN);
|
||||||
|
}
|
||||||
|
|
||||||
inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
|
inline void xd60_caps_led_off(void) {
|
||||||
inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
|
gpio_set_pin_input(XD60_CAPS_LOCK_LED_PIN);
|
||||||
|
}
|
||||||
|
inline void xd60_bl_led_off(void) {
|
||||||
|
gpio_set_pin_input(XD60_BACKLIGHT_PIN);
|
||||||
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case YD68_RGB_PWR:
|
case YD68_RGB_PWR:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
// when keycode YD68_RGB_PWR is pressed
|
// when keycode YD68_RGB_PWR is pressed
|
||||||
PORTE ^= (1<<2);
|
gpio_toggle_pin(E2);
|
||||||
} else {
|
} else {
|
||||||
// when keycode YD68_RGB_PWR is released
|
// when keycode YD68_RGB_PWR is released
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue