From b3db7c683cd32da72183fa7b882b34de1e5b167e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Sun, 22 Nov 2020 11:23:39 +0100 Subject: [PATCH] Fix warnings in RTC module --- firmware/rtc.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/firmware/rtc.c b/firmware/rtc.c index 74e8a35..81f9a9f 100644 --- a/firmware/rtc.c +++ b/firmware/rtc.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "rtc.h" #include "i2c.h" @@ -15,12 +16,15 @@ static void (*rtc_handler)(struct RTC_DATA* clock); void rtc_read_datetime(struct RTC_DATA* data); uint8_t eval_weekday(struct DATE_YMD* date); +void rtc_invoke_handler(void); void rtc_int0_init(void) { MCUCR |= (1<second); clock.buffer[1] = DEC_2_BCD(time->minute); clock.buffer[2] = DEC_2_BCD(time->hour); - i2c_writebuf(RTC_I2C_ADDR, 0x02, 3, &clock.buffer); + i2c_writebuf(RTC_I2C_ADDR, 0x02, 3, (uint8_t*) &clock.buffer); + rtc_invoke_handler(); } void rtc_set_date(struct DATE_YMD* date) { clock.buffer[3] = ((date->year & 0x03) << 6) | DEC_2_BCD(date->day); clock.buffer[4] = (eval_weekday(date) << 5) | DEC_2_BCD(date->month); - i2c_writebuf(RTC_I2C_ADDR, 0x05, 2, &clock.buffer[3]); + i2c_writebuf(RTC_I2C_ADDR, 0x05, 2, (uint8_t*) &clock.buffer[3]); i2c_writebuf(RTC_I2C_ADDR, 0x10, 2, (uint8_t*) &date->year); + rtc_invoke_handler(); } void rtc_inc_time(uint8_t part) @@ -64,7 +70,7 @@ void rtc_inc_time(uint8_t part) clock.buffer[0] = DEC_2_BCD(clock.buffer[0]); - i2c_writebuf(RTC_I2C_ADDR, part, 1, &clock.buffer); + i2c_writebuf(RTC_I2C_ADDR, part, 1, (uint8_t*) &clock.buffer); rtc_invoke_handler(); } @@ -72,8 +78,8 @@ void rtc_invoke_handler(void) { if(rtc_handler) { - rtc_read_datetime(&clock); - rtc_handler(&clock); + rtc_read_datetime((struct RTC_DATA*) &clock); + rtc_handler((struct RTC_DATA*) &clock); } } @@ -88,10 +94,10 @@ void rtc_handle_event(void) void rtc_read_datetime(struct RTC_DATA* data) { - i2c_readbuf(RTC_I2C_ADDR, 0x02, 5, data->buffer); + i2c_readbuf(RTC_I2C_ADDR, 0x02, 5, (uint8_t*) data->buffer); i2c_readbuf(RTC_I2C_ADDR, 0x10, 2, (uint8_t*) &(data->date.year)); - char* curr_char = data->time_str; + char* curr_char = (char*) data->time_str; for(uint8_t i=0; i<3; ++i) { // data->time_str @@ -118,7 +124,7 @@ void rtc_read_datetime(struct RTC_DATA* data) data->date.weekday = data->buffer[4] >> 5; // data->date_str - curr_char = data->date_str; + curr_char = (char*) data->date_str; *(curr_char++) = ((data->buffer[3] & 0x3F) >> 4) + '0'; *(curr_char++) = (data->buffer[3] & 0x0F) + '0'; *(curr_char++) = DATE_SEPARATOR; @@ -129,7 +135,7 @@ void rtc_read_datetime(struct RTC_DATA* data) *(curr_char+4) = 0; // data->weekday_str - strcpy_P(&data->weekday_str, weekday_strings + data->date.weekday * 4); + strcpy_P((char*) &data->weekday_str, weekday_strings + data->date.weekday * 4); } uint8_t eval_weekday(struct DATE_YMD* date)