Страница 1 из 1

Установка времени на ds1307

Добавлено: 18.02.2019{, 23:10}
seri0shka
Пытаюсь реализовать установку времени на часах с ds1307, ничего толком не получается. Самое смешное, что часы у меня работают уже несколько месяцев, время устанавливал из настроек ФЛпрог, надеялся, что мне на много месяцев хватит, но за неделю время убегает на несколько минут. Доступны всего две кнопки, меня устроило бы кнопка для прибавления минут и кнопка для прибавления часов, без всяких заморочек с меню. Часы на семисегментниках, проект не привожу, в данном случае это не актуально. Прилепил штатный блок установки времени для ds1307, схема вышла большая, а толку мало. Может кто даст ссылку на готовые проекты с ds1307, мне подходящего не удалось найти. Или приведёт участок проекта с блоком установки.

Установка времени на ds1307

Добавлено: 20.02.2019{, 10:10}
rw6cm
seri0shka,
вам авто коррекция нужна или обычная настройка часов?

Установка времени на ds1307

Добавлено: 20.02.2019{, 10:20}
Sancho
seri0shka, Тести
1. Только для часов и минут. Обновил - блок перенёс на другую плату по старому не работает, забыл о триггере в блоке установки даты, он при таком раскладе не сбрасывался после первого нажатия. Сори.
2. Для всех параметров.

Установка времени на ds1307

Добавлено: 20.02.2019{, 13:08}
rw6cm
seri0shka,
Автокоррекция секунд часов в заданное время

Установка времени на ds1307

Добавлено: 20.02.2019{, 14:07}
Sancho
Ждём, когда Автор заменит типы переменных в функции установки даты/времени.
сейчас так:
void set3231Date(int addres, struct _I2CRealRimeClockTime *timeStruct, byte sec, byte minut, byte hou, byte dat, byte mo, byte ye, byte daW)
что-бы работало:
void set3231Date(int addres, struct _I2CRealRimeClockTime *timeStruct, char sec, char minut, char hou, char dat, char mo, char ye, char daW)

Установка времени на ds1307

Добавлено: 20.02.2019{, 17:40}
seri0shka
Всем большое спасибо! Попробовать смогу только завтра. rw6cm, мне нужна была обычная настройка часов. Но всё равно спасибо, посмотрю хотя бы для общего развития.

Установка времени на ds1307

Добавлено: 22.02.2019{, 21:59}
seri0shka
Sancho, проверил в работе 1307_set_min_hour_v1.flp (заменил блок дисплея на свой семисегментный)
Работает так: жму кнопку "прибавить минуты", держу, через примерно 4 секунды показание сменяется на +1. Следующее нажатие через несколько секунд (если раньше, то не отреагирует), снова жду 4 секунды. Соответственно для настройки показаний часов нужно потратить несколько минут.
Я подозреваю, что это особенность работы с 1307. Или с этим можно бороться?
Второй проект не пробовал, у меня только 4 символа на часах.

Установка времени на ds1307

Добавлено: 22.02.2019{, 22:02}
Sancho
seri0shka, Пробовал - который "обновлено"?

Отправлено спустя 2 минуты 51 секунду:
Лично проверил второй, но с 3231 - работает 100%

Установка времени на ds1307

Добавлено: 22.02.2019{, 22:05}
Sancho
каждое нажатие это +1

Отправлено спустя 3 минуты 2 секунды:
Попробуй вставить в блок константы всех дат, любые

Отправлено спустя 5 минут 18 секунд:
Добавь, ради теста, второй проект. Адаптируй под своё железо

Установка времени на ds1307

Добавлено: 22.02.2019{, 22:52}
seri0shka
Sancho, пробовал который "обновлено", и вчера, и сегодня заново. Результат тот-же.

Установка времени на ds1307

Добавлено: 24.02.2019{, 00:03}
seri0shka
Sancho писал(а):
22.02.2019{, 22:13}
Добавь, ради теста, второй проект. Адаптируй под своё железо
Примерно то же самое, только цифра не изменяется, пока держишь кнопку.

Установка времени на ds1307

Добавлено: 24.02.2019{, 01:01}
Sancho
seri0shka, Изменение только в момент нажатия :) Одиночное.

Установка времени на ds1307

Добавлено: 24.02.2019{, 12:31}
seri0shka
В том то и дело, что не в момент нажатия, а нужно несколько секунд подержать кнопку, и только через пару секунд после отпускания происходит изменение, причём минимум половина нажатий вхолостую, без результата. Причину не пойму.