From 8a13a13a7c0752a72a163a8ec991364f3751878b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Mon, 23 Nov 2020 18:51:44 +0100 Subject: [PATCH] Introduce CPP macros for AVR IN/OUT registers --- firmware/common.h | 8 ++++++++ firmware/keyboard.c | 13 +++++++------ firmware/keyboard.h | 12 +++++------- firmware/led.c | 21 +++++++++++---------- firmware/led.h | 12 +++++------- firmware/rtc.c | 5 +++-- firmware/rtc.h | 8 ++------ 7 files changed, 41 insertions(+), 38 deletions(-) diff --git a/firmware/common.h b/firmware/common.h index 8f133d4..c4a0013 100644 --- a/firmware/common.h +++ b/firmware/common.h @@ -6,4 +6,12 @@ #define __PROJ_DATE__ "2020" #define __PROJ_REV__ "rev:1.0" +#define R_PORT(P) __R_PORT(P) +#define R_DDR(P) __R_DDR(P) +#define R_PIN(P) __R_PIN(P) + +#define __R_PORT(P) (PORT ## P) +#define __R_DDR(P) (DDR ## P) +#define __R_PIN(P) (PIN ## P) + #endif \ No newline at end of file diff --git a/firmware/keyboard.c b/firmware/keyboard.c index ab78922..e56cce5 100644 --- a/firmware/keyboard.c +++ b/firmware/keyboard.c @@ -1,4 +1,5 @@ #include +#include "common.h" #include "config.h" #include "keyboard.h" #include "debounce.h" @@ -31,14 +32,14 @@ void inc_brightness(void) void kbd_init(void) { - KEYBOARD_DIR &= ~(KEY_INC_HOUR | KEY_INC_MINUTE | KEY_INC_SECOND | KEY_INC_BRIGHTNESS); - PORTB |= KEY_INC_HOUR | KEY_INC_MINUTE | KEY_INC_SECOND | KEY_INC_BRIGHTNESS; + R_DDR(KEYBOARD_PORT) &= ~(1< #include +#include "common.h" #include "config.h" #include "led.h" @@ -10,12 +11,12 @@ static struct LED_DIGS display; void led_init(void) { // Set outputs - ANODES_DIR |= DIG0_ANODE | DIG1_ANODE | DIG2_ANODE; - LED_DIR |= 0x3F; // 0b00111111 + R_DDR(ANODES_PORT) |= 1<= pwm_counter ? ~DIG0_ANODE : 0xFF; + R_PORT(LED_PORT) = ~display.dig0; + R_PORT(ANODES_PORT) = led_btnes >= pwm_counter ? ~(1<= pwm_counter ? ~DIG1_ANODE : 0xFF; + R_PORT(LED_PORT) = ~display.dig1; + R_PORT(ANODES_PORT) = led_btnes >= pwm_counter ? ~(1<= pwm_counter ? ~DIG2_ANODE : 0xFF; + R_PORT(LED_PORT) = ~display.dig2; + R_PORT(ANODES_PORT) = led_btnes >= pwm_counter ? ~(1< #include #include +#include "common.h" #include "rtc.h" #include "i2c.h" @@ -21,8 +22,8 @@ void rtc_invoke_handler(void); void rtc_int0_init(void) { MCUCR |= (1<