From ed730b8dc3f5927dd202a02ff669c399f143a513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Wed, 18 Nov 2020 09:00:09 +0100 Subject: [PATCH] Replace led_hour (etc.) globals with TIME struct --- firmware/keyboard.c | 12 ++++++------ firmware/led.c | 10 ++++------ firmware/led.h | 6 +++--- firmware/main.c | 10 ++-------- firmware/rtc.h | 10 ++-------- firmware/time.h | 11 +++++++++++ 6 files changed, 28 insertions(+), 31 deletions(-) create mode 100644 firmware/time.h diff --git a/firmware/keyboard.c b/firmware/keyboard.c index d8e6b3e..9a2466d 100644 --- a/firmware/keyboard.c +++ b/firmware/keyboard.c @@ -9,20 +9,20 @@ uint8_t k_inc_hour, k_inc_minute, k_inc_second, k_inc_brightness; void inc_hour(void) { - led_hour = (led_hour + 1) % 24; - rtc_set_time(HOUR, led_hour); + led_display.hour = (led_display.hour + 1) % 24; + rtc_set_time(HOUR, led_display.hour); } void inc_minute(void) { - led_minute = (led_minute + 1) % 60; - rtc_set_time(MINUTE, led_minute); + led_display.minute = (led_display.minute + 1) % 60; + rtc_set_time(MINUTE, led_display.minute); } void inc_second(void) { - led_second = (led_second + 1) % 60; - rtc_set_time(SECOND, led_second); + led_display.second = (led_display.second + 1) % 60; + rtc_set_time(SECOND, led_display.second); } void inc_brightness(void) diff --git a/firmware/led.c b/firmware/led.c index 45cbe35..2a90cd5 100644 --- a/firmware/led.c +++ b/firmware/led.c @@ -3,9 +3,7 @@ #include "config.h" #include "led.h" -volatile uint8_t led_hour; -volatile uint8_t led_minute; -volatile uint8_t led_second; +volatile struct TIME led_display = { 0, 0, 0 }; void led_init(void) { @@ -31,15 +29,15 @@ ISR(TIMER0_OVF_vect) switch(curr_anode) { case 1: - LED_PORT = ~led_hour; + LED_PORT = ~led_display.hour; ANODES_PORT = ram_cfg.led_brightness >= pwm_counter ? ~HOUR_ANODE : 0xFF; break; case 2: - LED_PORT = ~led_minute; + LED_PORT = ~led_display.minute; ANODES_PORT = ram_cfg.led_brightness >= pwm_counter ? ~MINUTE_ANODE : 0xFF; break; case 4: - LED_PORT = ~led_second; + LED_PORT = ~led_display.second; ANODES_PORT = ram_cfg.led_brightness >= pwm_counter ? ~SECOND_ANODE : 0xFF; break; } diff --git a/firmware/led.h b/firmware/led.h index 4ed30b7..bc93a34 100644 --- a/firmware/led.h +++ b/firmware/led.h @@ -1,6 +1,8 @@ #ifndef __LED_H__ #define __LED_H__ +#include "time.h" + #define LED_PORT PORTA #define LED_DIR DDRA @@ -10,9 +12,7 @@ #define MINUTE_ANODE (1<> 4) & 0x0F) * 10) + ((bcd) & 0x0F)) -struct TIME -{ - uint8_t hour; - uint8_t minute; - uint8_t second; -}; - void rtc_int0_init(void); void rtc_int1_init(void); void rtc_set_time(uint8_t part, uint8_t value); diff --git a/firmware/time.h b/firmware/time.h new file mode 100644 index 0000000..249fff6 --- /dev/null +++ b/firmware/time.h @@ -0,0 +1,11 @@ +#ifndef __TIME_H__ +#define __TIME_H__ + +struct TIME +{ + uint8_t hour; + uint8_t minute; + uint8_t second; +}; + +#endif \ No newline at end of file