Нужно просто изменить инит ЧРВ и переформатировать данные. ДС3231 я ковырял в апреле во время изоляции )), подводных камней не обнаружил. Правда, 1Гц вывод не проверял, но вряд ли с ним может быть какая-то засада.
Добавлено after 2 hours 57 minutes 33 seconds:
Сейчас почитал комменты к статье, там есть обновленная прошивка под 1307. У нее адресация регистров почти идентична 3231 (кроме пары битов). Нужно исправить инит часов и проверить, что происходит на старте (проверка на первое включение с включением часов при необходимости).
Вообще, автор не новичок в программировании, насколько я знаю, но даже мне, вечно начинающему, не понравилось, что адрес слейва постоянно передается в I2C функциях, причем различно для WR и RD. Хотя достаточно было в хедере задефайнить "чистый" адрес, а в функции чтения по I2C выставлять бит чтения.
Т.е. так:
Код: Выделить всё
ds1307.h
#define SLAVE_ADDRESS 0xD0
.....
Код: Выделить всё
ds1307.c
I2C_Write_(SLAVE_ADDRESS , 0x07, rs);
I2C_Read_(SLAVE_ADDRESS, 0)
............
uint8_t I2C_Read_(uint8_t HW_address, uint8_t addr)
{
HW_address |= 0x01;
...........
}
Но испытывать придется stepanici85 ))
Добавлено after 1 hour 15 minutes 2 seconds:
Вроде все поправил. Осталось скомпилировать и проверить.
BlackKilkennyCat, сможете сделать?



