1
0
Fork 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
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 877 additions and 840 deletions

View file

@ -1,12 +1,12 @@
#include "rev1.h"
void led_init(void) {
setPinOutput(D1); // Pin to green, set as output
writePinHigh(D1); // Turn it off
setPinOutput(F4); // Pins to red and blue, set as output
setPinOutput(F5);
writePinHigh(F4); // Turn them off
writePinHigh(F5);
gpio_set_pin_output(UNI660_GREEN_LED_PIN);
gpio_write_pin_high(UNI660_GREEN_LED_PIN);
gpio_set_pin_output(UNI660_BLUE_LED_PIN);
gpio_write_pin_high(UNI660_BLUE_LED_PIN);
gpio_set_pin_output(UNI660_RED_LED_PIN);
gpio_write_pin_high(UNI660_RED_LED_PIN);
}
void matrix_init_kb(void) {

View file

@ -2,12 +2,16 @@
#include "quantum.h"
#define red_led_off writePinHigh(F5)
#define red_led_on writePinLow(F5)
#define blu_led_off writePinHigh(F4)
#define blu_led_on writePinLow(F4)
#define grn_led_off writePinHigh(D1)
#define grn_led_on writePinLow(D1)
#define UNI660_RED_LED_PIN F5
#define UNI660_GREEN_LED_PIN D1
#define UNI660_BLUE_LED_PIN F4
#define red_led_off gpio_write_pin_high(UNI660_RED_LED_PIN)
#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_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_cyan red_led_off; 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)
*/

View file

@ -1,12 +1,12 @@
#include "rev2.h"
void led_init(void) {
setPinOutput(D1); // Pin to green, set as output
writePinHigh(D1); // Turn it off
setPinOutput(F4); // Pins to red and blue, set as output
setPinOutput(F5);
writePinHigh(F4); // Turn them off
writePinHigh(F5);
gpio_set_pin_output(UNI660_GREEN_LED_PIN);
gpio_write_pin_high(UNI660_GREEN_LED_PIN);
gpio_set_pin_output(UNI660_BLUE_LED_PIN);
gpio_write_pin_high(UNI660_BLUE_LED_PIN);
gpio_set_pin_output(UNI660_RED_LED_PIN);
gpio_write_pin_high(UNI660_RED_LED_PIN);
}
void matrix_init_kb(void) {

View file

@ -2,12 +2,16 @@
#include "quantum.h"
#define red_led_off writePinHigh(F5)
#define red_led_on writePinLow(F5)
#define blu_led_off writePinHigh(F4)
#define blu_led_on writePinLow(F4)
#define grn_led_off writePinHigh(D1)
#define grn_led_on writePinLow(D1)
#define UNI660_RED_LED_PIN F5
#define UNI660_GREEN_LED_PIN D1
#define UNI660_BLUE_LED_PIN F4
#define red_led_off gpio_write_pin_high(UNI660_RED_LED_PIN)
#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_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_cyan red_led_off; 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)
*/

View file

@ -1,7 +1,5 @@
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
#include <util/delay.h>
// LUFA
#include "lufa.h"
@ -9,6 +7,8 @@
#include "sendchar.h"
#include "debug.h"
#include "keyboard.h"
#include "gpio.h"
#include "wait.h"
#include "led.h"
/* LED ping configuration */
@ -16,16 +16,16 @@
//#define LEONARDO_LED
#if defined(TMK_LED)
// For TMK converter and Teensy
#define LED_TX_INIT (DDRD |= (1<<6))
#define LED_TX_ON (PORTD |= (1<<6))
#define LED_TX_OFF (PORTD &= ~(1<<6))
#define LED_TX_TOGGLE (PORTD ^= (1<<6))
#define LED_TX_INIT gpio_set_pin_output(D6)
#define LED_TX_ON gpio_write_pin_high(D6)
#define LED_TX_OFF gpio_write_pin_low(D6)
#define LED_TX_TOGGLE gpio_toggle_pin(D6)
#elif defined(LEONARDO_LED)
// For Leonardo(TX LED)
#define LED_TX_INIT (DDRD |= (1<<5))
#define LED_TX_ON (PORTD &= ~(1<<5))
#define LED_TX_OFF (PORTD |= (1<<5))
#define LED_TX_TOGGLE (PORTD ^= (1<<5))
#define LED_TX_INIT gpio_set_pin_output(D5)
#define LED_TX_ON gpio_write_pin_low(D5)
#define LED_TX_OFF gpio_write_pin_high(D5)
#define LED_TX_TOGGLE gpio_toggle_pin(D5)
#else
#define LED_TX_INIT
#define LED_TX_ON