1
0

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
71 changed files with 877 additions and 840 deletions

View File

@@ -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_2_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_led_1_off(void);
extern inline void frenchdev_led_2_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_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
DDRD &= ~(1<<5 | 1<<4);
DDRE &= ~(1<<6);
PORTD |= (1<<5 | 1<<4);
PORTE |= (1<<6);
gpio_set_pin_input_high(D4);
gpio_set_pin_input_high(D5);
gpio_set_pin_input_high(E6);
frenchdev_blink_all_leds();
frenchdev_blink_all_leds();

View File

@@ -27,18 +27,40 @@ uint8_t init_mcp23018(void);
#define LED_BRIGHTNESS_LO 15
#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_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); }
inline void frenchdev_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); }
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_board_led_on(void) {
gpio_set_pin_output(FRENCHDEV_BOARD_LED_PIN);
gpio_write_pin_high(FRENCHDEV_BOARD_LED_PIN);
}
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_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); }
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_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); }
inline void frenchdev_board_led_off(void) {
gpio_set_pin_input(FRENCHDEV_BOARD_LED_PIN);
}
inline void frenchdev_led_1_off(void) {
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)
{

View File

@@ -213,8 +213,12 @@ static void init_cols(void)
// init on teensy
// Input with pull-up(DDR:0, PORT:1)
DDRF &= ~(1<<7 | 1<<6 | 1<<5 | 1<<4 | 1<<1 | 1<<0);
PORTF |= (1<<7 | 1<<6 | 1<<5 | 1<<4 | 1<<1 | 1<<0);
gpio_set_pin_input_high(F0);
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)
@@ -265,12 +269,14 @@ static void unselect_rows(void)
// unselect on teensy
// Hi-Z(DDR:0, PORT:0) to unselect
DDRB &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3);
PORTB &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3);
DDRD &= ~(1<<2 | 1<<3);
PORTD &= ~(1<<2 | 1<<3);
DDRC &= ~(1<<6 | 1<<7);
PORTC &= ~(1<<6 | 1<<7);
gpio_set_pin_input(B0);
gpio_set_pin_input(B1);
gpio_set_pin_input(B2);
gpio_set_pin_input(B3);
gpio_set_pin_input(D2);
gpio_set_pin_input(D3);
gpio_set_pin_input(C6);
gpio_set_pin_input(C7);
}
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
switch (row) {
case 8:
DDRB |= (1<<0);
PORTB &= ~(1<<0);
gpio_set_pin_output(B0);
gpio_write_pin_low(B0);
break;
case 9:
DDRB |= (1<<1);
PORTB &= ~(1<<1);
gpio_set_pin_output(B1);
gpio_write_pin_low(B1);
break;
case 10:
DDRB |= (1<<2);
PORTB &= ~(1<<2);
gpio_set_pin_output(B2);
gpio_write_pin_low(B2);
break;
case 11:
DDRB |= (1<<3);
PORTB &= ~(1<<3);
gpio_set_pin_output(B3);
gpio_write_pin_low(B3);
break;
case 12:
DDRD |= (1<<2);
PORTD &= ~(1<<3);
gpio_set_pin_output(D2);
gpio_write_pin_low(D2);
break;
case 13:
DDRD |= (1<<3);
PORTD &= ~(1<<3);
gpio_set_pin_output(D3);
gpio_write_pin_low(D3);
break;
case 14:
DDRC |= (1<<6);
PORTC &= ~(1<<6);
gpio_set_pin_output(C6);
gpio_write_pin_low(C6);
break;
case 15:
DDRC |= (1<<7);
PORTC &= ~(1<<7);
gpio_set_pin_output(C7);
gpio_write_pin_low(C7);
break;
}
}