Convert some AVR GPIO operations to macros (#23424)

This commit is contained in:
Ryan 2024-05-02 19:48:49 +10:00 committed by GitHub
parent 7220715dd1
commit 61c7c1f74c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 877 additions and 840 deletions

View file

@ -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_2_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_right_led_1_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_off(uint8_t led);
extern inline void ergodox_led_all_on(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
// (tied to Vcc for hardware convenience)
DDRB &= ~(1 << 4); // set B(4) as input
PORTB &= ~(1 << 4); // set B(4) internal pull-up disabled
gpio_set_pin_input(B4); // set B(4) as input, 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
DDRC &= ~(1 << 7);
DDRD &= ~(1 << 5 | 1 << 4);
DDRE &= ~(1 << 6);
PORTC |= (1 << 7);
PORTD |= (1 << 5 | 1 << 4);
PORTE |= (1 << 6);
gpio_set_pin_input_high(C7);
gpio_set_pin_input_high(D4);
gpio_set_pin_input_high(D5);
gpio_set_pin_input_high(E6);
keyboard_config.raw = eeconfig_read_kb();
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4);

View file

@ -51,18 +51,40 @@ uint8_t ergodox_left_leds_update(void);
#define LED_BRIGHTNESS_HI 255
#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_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); }
inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); }
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_board_led_on(void) {
gpio_set_pin_output(ERGODOX_EZ_BOARD_LED_PIN);
gpio_write_pin_high(ERGODOX_EZ_BOARD_LED_PIN);
}
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_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); }
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_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); }
inline void ergodox_board_led_off(void) {
gpio_set_pin_input(ERGODOX_EZ_BOARD_LED_PIN);
}
inline void ergodox_right_led_1_off(void) {
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
bool ergodox_left_led_1;