Часы DS3231

Использование различных блоков часов
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#1

Сообщение Nikito$ » 17.04.2017{, 21:20}

Доброго времени суток, подскажите как в часах DS3231 установить время идату, если они выходят одной строкой. Как я понял при записи нужно чтобы была
некая переменная с текущим значением данных, которые нужно установить и к этой
переменной нужно прибавлять единицу либо же отнимать её, и в этот же момент произвести запись нового значения. А как быть если одна
строка??

igori1ok
Рядовой
Сообщения: 11
Зарегистрирован: 09.03.2017{, 22:35}
Репутация: 0

Часы DS3231

#2

Сообщение igori1ok » 17.04.2017{, 22:13}

Часы реального времени- Установка времени

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#3

Сообщение Boroda » 17.04.2017{, 22:44}

Nikito$, если все данные стоят на определенных местах, то тогда можно сделать получением подстроки. Если данные постоянно двигаются, то уже сложнее, надо пользоваться поиском подстроки...

Вложения
4777596.png

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Часы DS3231

#4

Сообщение support » 17.04.2017{, 22:56}

Ну вообще то есть блок "Получение данных с часов реального времени". Там ставите галочки 'Выход часы'...... и т. д. И получаете необходимые значения в виде цифр
Автор программы FLProg.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#5

Сообщение Boroda » 17.04.2017{, 23:05}

Nikito$, сейчас блоки часов покрутил, подумал и пришел к выводу: чтоб сделать увеличение и уменьшение кнопками +\- надо очень сильно постараться. По хорошему надо блок пользователя сделать с тремя входами: номер параметра, кнопка плюс, кнопка минус. И этим блоком связать блоки записи и чтения часов.
Выставил параметр 0 - ничего не меняем.
Параметр 1 - меняем часы.
Параметр 2 - меняем минуты.
Параметр 3 - меняем секунды.
и т.д.

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#6

Сообщение Nikito$ » 17.04.2017{, 23:28}

Boroda писал(а):Nikito$, если все данные стоят на определенных местах, то тогда можно сделать получением подстроки. Если данные постоянно двигаются, то уже сложнее, надо пользоваться поиском подстроки...
 Спасибо попробую. Остановить данные на время записи думаю не трудно, просто добавив разрешение записи для переменной со временем... потом при отпускании кнопки снова разрешаем запись.

Добавлено (17.04.2017, 23:22)
---------------------------------------------
support писал(а):Ну вообще то есть блок "Получение данных с часов реального времени". Там ставите галочки 'Выход часы'...... и т. д. И получаете необходимые значения в виде цифр
С этим я разобрался)) Теперь разбираюсь как правильно устанавливать время если с блока оно выходит в виде строковой переменной и при этом ещё нужно мигать нужным разрядом...

Добавлено (17.04.2017, 23:28)
---------------------------------------------
Boroda писал(а):Nikito$, сейчас блоки часов покрутил, подумал и пришел к выводу: чтоб сделать увеличение и уменьшение кнопками +\- надо очень сильно постараться. По хорошему надо блок пользователя сделать с тремя входами: номер параметра, кнопка плюс, кнопка минус. И этим блоком связать блоки записи и чтения часов. Выставил параметр 0 - ничего не меняем.
Параметр 1 - меняем часы.
Параметр 2 - меняем минуты.
Параметр 3 - меняем секунды.
и т.д.
Что то подобное я уже делал... вроде даже получалось прибавлять единицу к текущему времени и после отпускания записывать новое значение в часы. Но тогда у меня были ds1307, соответственно часы и минуты выходили в формате int. Но вот где этот проект, не понятно(((

Evgesha
Лейтенант
Сообщения: 525
Зарегистрирован: 29.10.2015{, 09:57}
Репутация: 20
Откуда: Kazakhstan
Имя: Evgesha

Часы DS3231

#7

Сообщение Evgesha » 18.04.2017{, 07:54}

http://forum.flprogwiki.ru/viewtopic.php?f=18&t=2044

Добавлено (18.04.2017, 07:54)
---------------------------------------------
Nikito$,
В прикрепленном проекте нужная вам инфо
ПОМОЩЬ ПРОЕКТУ FLPROG:
http://flprog.ru/pomoshh-proektu/

Denn4a
Рядовой
Сообщения: 19
Зарегистрирован: 23.01.2017{, 06:14}
Репутация: 0

Часы DS3231

#8

Сообщение Denn4a » 18.04.2017{, 08:52}

Мои часики!
Вложения
9190769.rar
(94.83 КБ) 111 скачиваний
Последний раз редактировалось Denn4a 18.04.2017{, 08:53}, всего редактировалось 1 раз.

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#9

Сообщение Nikito$ » 18.04.2017{, 10:27}

Прихожу к выводу,что проще получать с блока отдельно часы, минуты и секунды, тем более манипулировать байтами гораздо проще чем строкой

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#10

Сообщение Nikito$ » 18.04.2017{, 12:59}

Цитата Boroda () Nikito$, сейчас блоки часов покрутил, подумал и пришел к выводу: чтоб сделать увеличение и уменьшение кнопками +\- надо очень сильно постараться. По хорошему надо блок пользователя сделать с тремя входами: номер параметра, кнопка плюс, кнопка минус. И этим блоком связать блоки записи и чтения часов. Выставил параметр 0 - ничего не меняем.
Параметр 1 - меняем часы.
Параметр 2 - меняем минуты.
Параметр 3 - меняем секунды.
и т.д.В продолжении темы установки. Нашел я свой старый проект где пробовал устанавливать время. Немного поправил, добавил возможность не только прибавлять единицу, но и отнимать её. И это, как ни странно, работает! Но на сколько данный подход правильный не совсем понятно  
Ссылка на проект: https://yadi.sk/d/aWzz58373H6MR4
Вложения
2418630.jpg
Последний раз редактировалось Nikito$ 18.04.2017{, 13:09}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#11

Сообщение Boroda » 18.04.2017{, 14:10}

Ну от Switch можно избавиться, а на нулевой вход MUX посадить переменную ЧАС. И на каждую кнопку поставить элемент AND и подавать сигналы разрешения изменения.
Последний раз редактировалось Boroda 18.04.2017{, 14:11}, всего редактировалось 1 раз.

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#12

Сообщение Nikito$ » 18.04.2017{, 14:51}

Цитата Boroda () Ну от Switch можно избавиться, а на нулевой вход MUX посадить переменную ЧАС. И на каждую кнопку поставить элемент AND и подавать сигналы разрешения изменения. Ну да, так ещё проще, и главное работает))   Только на кнопки ставить ничего не нужно. При нажатии up или down у меня блокируется запись в переменную час (в неё записывается текущее время с блока получения) И при этом же нажатии разрешатся запись в переменную час.установка - эта переменная соединена с блоком установки времени.
Вложения
7242723.jpg
Последний раз редактировалось Nikito$ 18.04.2017{, 14:52}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#13

Сообщение Boroda » 18.04.2017{, 15:09}

А если кнопок +/- только две, а нужно поменять часы, минуты, секунды, год и т.д?
Ставим кнопку "селект" со счетчиком и по счетику разблокируем ANDы блоков изменения часов, минут, секунд и т.д.

Добавлено (18.04.2017, 15:09)
---------------------------------------------
Nikito$, теперь собирайте блок пользователя на FBD для прямой стыковки блоков Чтения и Записи времени.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#14

Сообщение Boroda » 18.04.2017{, 15:44}

Nikito$, сейчас некогда возиться, набросок сделал, есть желание, можете добить доконца.
Вложения
RTC_set.rar
(57.45 КБ) 97 скачиваний

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#15

Сообщение Nikito$ » 18.04.2017{, 15:58}

Цитата Boroda () А если кнопок +/- только две, а нужно поменять часы, минуты, секунды, год и т.д?Ставим кнопку "селект" со счетчиком и по счетику разблокируем ANDы блоков изменения часов, минут, секунд и т.д.Это у меня уже реализовано   Вот по такому принципу. Далее буду мигание нужных разрядов добавлять)) 
Вложения
2521595.jpg

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#16

Сообщение Boroda » 18.04.2017{, 16:21}

Вот блок на СИ наваял.

Вложения
9747596.png
RTC_set_1.rar
(21.13 КБ) 103 скачивания

Evgesha
Лейтенант
Сообщения: 525
Зарегистрирован: 29.10.2015{, 09:57}
Репутация: 20
Откуда: Kazakhstan
Имя: Evgesha

Часы DS3231

#17

Сообщение Evgesha » 18.04.2017{, 16:42}

Boroda, как смотреть что подводится ?
ПОМОЩЬ ПРОЕКТУ FLPROG:
http://flprog.ru/pomoshh-proektu/

Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15.12.2016{, 22:04}
Репутация: 0
Откуда: Екатеринбург

Часы DS3231

#18

Сообщение Nikito$ » 18.04.2017{, 16:46}

Boroda писал(а):Вот блок на СИ наваял.
Ух, ты)) Круто! Он в работе тестировался??

Добавлено (18.04.2017, 16:46)
---------------------------------------------
Evgesha писал(а):Boroda, как смотреть что подводится ?
Видимо, нужно под часы, минуты и т.д отдельный блок дисплея. И включать и выключать его в зависимости от счётчика)
Последний раз редактировалось Nikito$ 18.04.2017{, 16:47}, всего редактировалось 1 раз.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

#19

Сообщение Boroda » 18.04.2017{, 17:02}

Evgesha, из описания блока:

На вход Sel подается номер параметра, входами UP и DN осуществляется коррекция значения.
0 - ничего не меняем
1 - час
2 - минута
3 - секунда
4 - год
5 - месяц
6 - число
7 - день недели

Sel надо как-то выводить на дисплей. Может точку зажигать на 7SegLED рядом с изменяемым параметром. На LCD я обычно подчеркивание курсора двигал, но в FLPROG это невозможно.

Добавлено (18.04.2017, 17:02)
---------------------------------------------
Nikito$, протестируйте пожалуйста. У меня просто ни индикатора, ни модуля часов нет.
Последний раз редактировалось Boroda 18.04.2017{, 17:01}, всего редактировалось 1 раз.

Evgesha
Лейтенант
Сообщения: 525
Зарегистрирован: 29.10.2015{, 09:57}
Репутация: 20
Откуда: Kazakhstan
Имя: Evgesha

Часы DS3231

#20

Сообщение Evgesha » 18.04.2017{, 17:14}

Завтра попробую на железе.
ПОМОЩЬ ПРОЕКТУ FLPROG:
http://flprog.ru/pomoshh-proektu/

Ответить

Вернуться в «Часы реального времени»