31 #define TM_DS1307_H 120
91 #include "stm32f4xx.h"
92 #include "tm_stm32f4_i2c.h"
103 #define DS1307_I2C I2C1
104 #define DS1307_I2C_PINSPACK TM_I2C_PinsPack_1
108 #ifndef DS1307_I2C_CLOCK
109 #define DS1307_I2C_CLOCK 100000
113 #define DS1307_I2C_ADDR 0xD0
116 #define DS1307_SECONDS 0x00
117 #define DS1307_MINUTES 0x01
118 #define DS1307_HOURS 0x02
119 #define DS1307_DAY 0x03
120 #define DS1307_DATE 0x04
121 #define DS1307_MONTH 0x05
122 #define DS1307_YEAR 0x06
123 #define DS1307_CONTROL 0x07
126 #define DS1307_CONTROL_OUT 7
127 #define DS1307_CONTROL_SQWE 4
128 #define DS1307_CONTROL_RS1 1
129 #define DS1307_CONTROL_RS0 0
uint8_t TM_DS1307_GetMonth(void)
Gets month from DS1307.
void TM_DS1307_SetDateTime(TM_DS1307_Time_t *time)
Sets full date and time to DS1307.
uint8_t seconds
Definition: tm_stm32f4_ds1307.h:154
uint8_t year
Definition: tm_stm32f4_ds1307.h:160
uint8_t date
Definition: tm_stm32f4_ds1307.h:158
TM_DS1307_Result_t TM_DS1307_Init(void)
Initializes DS1307 RTC library.
uint8_t TM_DS1307_CheckMinMax(uint8_t val, uint8_t min, uint8_t max)
Checks for min and max values, which can be stored to DS1307.
void TM_DS1307_SetMinutes(uint8_t minutes)
Sets minutes to DS1307.
void TM_DS1307_SetMonth(uint8_t month)
Sets month to DS1307.
uint8_t TM_DS1307_GetMinutes(void)
Gets minutes from DS1307.
void TM_DS1307_GetDateTime(TM_DS1307_Time_t *time)
Gets full date and time from DS1307.
uint8_t minutes
Definition: tm_stm32f4_ds1307.h:155
uint8_t month
Definition: tm_stm32f4_ds1307.h:159
void TM_DS1307_SetSeconds(uint8_t seconds)
Sets seconds to DS1307.
Definition: tm_stm32f4_ds1307.h:145
Definition: tm_stm32f4_ds1307.h:147
Definition: tm_stm32f4_ds1307.h:169
void TM_DS1307_SetDay(uint8_t day)
Sets day to DS1307.
TM_DS1307_Result_t
Result enumeration.
Definition: tm_stm32f4_ds1307.h:144
Definition: tm_stm32f4_ds1307.h:170
void TM_DS1307_EnableOutputPin(TM_DS1307_OutputFrequency_t frequency)
DS1307 has SQW/OUT pin, which can be enabled in various modes. It can output 32768Hz, 8192Hz, 4096Hz, 1Hz, Low or High state. This is useful if you need interrupts on MCU. 1Hz can be used to increment time by software each time. This is faster than look for date and time each time.
uint8_t TM_DS1307_GetHours(void)
Gets hours from DS1307.
uint8_t TM_DS1307_GetYear(void)
Gets year from DS1307.
Definition: tm_stm32f4_ds1307.h:168
TM_DS1307_OutputFrequency_t
Enumeration for SQW/OUT pin.
Definition: tm_stm32f4_ds1307.h:166
Structure for date/time.
Definition: tm_stm32f4_ds1307.h:153
uint8_t TM_DS1307_Bcd2Bin(uint8_t bcd)
Converts BCD to BIN data.
uint8_t TM_DS1307_GetSeconds(void)
Gets seconds from DS1307.
uint8_t TM_DS1307_Bin2Bcd(uint8_t bin)
Converts BIN to BCD data.
void TM_DS1307_SetHours(uint8_t hours)
Sets hours to DS1307.
Definition: tm_stm32f4_ds1307.h:146
uint8_t TM_DS1307_GetDate(void)
Gets date from DS1307.
Definition: tm_stm32f4_ds1307.h:167
Definition: tm_stm32f4_ds1307.h:172
void TM_DS1307_SetDate(uint8_t date)
Sets date to DS1307.
uint8_t TM_DS1307_GetDay(void)
Gets day in a week from DS1307.
uint8_t hours
Definition: tm_stm32f4_ds1307.h:156
void TM_DS1307_SetYear(uint8_t year)
Sets year to DS1307.
uint8_t day
Definition: tm_stm32f4_ds1307.h:157
Definition: tm_stm32f4_ds1307.h:171
void TM_DS1307_DisableOutputPin(void)
Disables SQW/OUT pin.