26 return (hex % 10) + ((hex / 10) << 4);
31 return (bcd >> 4) * 10 + (bcd & 0x0F);
52 t[7] = (
buff[2] >> 6) & 0x01;
53 t[8] = (
buff[2] >> 5) & 0x01;
83 if (t[0] > 200) t[0] = 200;
85 if (t[1] == 0) t[1] = 1;
86 else if (t[1] > 12) t[1] = 12;
88 if (t[2] == 0) t[2] = 1;
89 else if (t[2] > 7) t[2] = 7;
91 if (t[3] == 0) t[3] = 1;
92 else if (t[3] > 31) t[3] = 31;
96 if (t[4] > 12) t[4] = 12;
100 if (t[4] > 23) t[4] = 23;
103 if (t[5] > 59) t[5] = 59;
104 if (t[6] > 59) t[6] = 59;
158 buff[0] &= ~(1 << 2);
159 buff[0] |= (*pin) << 2;
177 buff[0] &= ~(1 << 6);
178 buff[0] |= state << 6;
196 buff[0] &= ~(1 << alarm);
197 buff[0] |= state << alarm;
209 if (((
buff[3] >> 6) & 0x01) != 0)
219 t[8] = ((
buff[2] >> 5) & 0x01);
220 t[7] = ((
buff[2] >> 6) & 0x01);
232 ((
buff[0]>>7)&0x01)<<0 |
233 ((
buff[1]>>7)&0x01)<<1 |
234 ((
buff[2]>>7)&0x01)<<2 |
235 ((
buff[3]>>7)&0x01)<<3 |
236 ((
buff[3]>>6)&0x01)<<4
265 reg = (((mode >> 3) & 0x01) << 7) | (1 << 6) |
DS3231_Hex2Bcd(t[2]);
282 if (((
buff[2] >> 6) & 0x01) != 0)
292 t[8] = ((
buff[1] >> 5) & 0x01);
293 t[7] = ((
buff[1] >> 6) & 0x01);
308 ((
buff[0]>>7)&0x01)<<0 |
309 ((
buff[1]>>7)&0x01)<<1 |
310 ((
buff[2]>>7)&0x01)<<2 |
311 ((
buff[2]>>6)&0x01)<<4
337 reg = (((mode >> 2) & 0x01) << 7) | (1 << 6) |
DS3231_Hex2Bcd(t[2]);
353 buff[0] &= ~(1 << alarm);
uint8_t DS3231_SetAlarmInterrupt(DS3231_Alarm_t alarm, HAL_State_t state)
uint8_t DS3231_SetAlarm1(uint8_t *t, DS3231_Alarm1Mode_t mode)
uint8_t DS3231_GetPin(DS3231_PinType_t *pin)
uint8_t DS3231_Hex2Bcd(uint8_t hex)
uint8_t DS3231_SetAlarm2(uint8_t *t, DS3231_Alarm2Mode_t mode)
uint8_t DS3231_SetSquareOutputState(HAL_State_t state)
uint8_t DS3231_GetStatus(void)
uint8_t ds3231_GetSquareOutputState(HAL_State_t *state)
uint8_t DS3231_SetPin(DS3231_PinType_t *pin)
uint8_t DS3231_GetAlarm2(uint8_t *t, DS3231_Alarm2Mode_t *mode)
uint8_t DS3231_Bcd2Hex(uint8_t bcd)
uint8_t DS3231_ClearAlarm(DS3231_Alarm_t alarm)
uint8_t DS3231_SetTime(uint8_t *t)
uint8_t DS3231_GetAlarm1(uint8_t *t, DS3231_Alarm1Mode_t *mode)
uint8_t DS3231_Write(uint8_t reg, uint8_t dat)
uint8_t DS3231_GetAlarmInterrupt(DS3231_Alarm_t alarm, HAL_State_t *state)
uint8_t DS3231_GetTime(uint8_t *t)
#define DS3231_REG_MINUTE
#define DS3231_REG_CONTROL
#define DS3231_REG_ALARM2_MINUTE
#define DS3231_REG_ALARM2_WEEK
@ DS3231_ALARM2_MODE_WEEK_HOUR_MINUTE_MATCH
#define DS3231_REG_ALARM1_MINUTE
#define DS3231_REG_ALARM2_HOUR
#define DS3231_REG_SECOND
@ DS3231_ALARM1_MODE_WEEK_HOUR_MINUTE_SECOND_MATCH
#define DS3231_REG_ALARM1_HOUR
#define DS3231_REG_ALARM1_SECOND
#define DS3231_REG_ALARM1_WEEK
#define DS3231_REG_STATUS
uint8_t I2C_Read(uint8_t devAddr, uint8_t memAddr, uint8_t *buf, uint16_t size)
uint8_t I2C_Write(uint8_t devAddr, uint8_t memAddr, uint8_t *dat, uint16_t size)