Часы DS3231

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

Часы DS3231

Сообщение Nikito$ »

Доброго времени суток, подскажите как в часах DS3231 установить время идату, если они выходят одной строкой. Как я понял при записи нужно чтобы была
некая переменная с текущим значением данных, которые нужно установить и к этой
переменной нужно прибавлять единицу либо же отнимать её, и в этот же момент произвести запись нового значения. А как быть если одна
строка??
igori1ok
Рядовой
Сообщения: 11
Зарегистрирован: 09 мар 2017, 22:35

Часы DS3231

Сообщение igori1ok »

Часы реального времени- Установка времени
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

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

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Часы DS3231

Сообщение support »

Ну вообще то есть блок "Получение данных с часов реального времени". Там ставите галочки 'Выход часы'...... и т. д. И получаете необходимые значения в виде цифр
Автор программы FLProg.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

Nikito$, сейчас блоки часов покрутил, подумал и пришел к выводу: чтоб сделать увеличение и уменьшение кнопками +\- надо очень сильно постараться. По хорошему надо блок пользователя сделать с тремя входами: номер параметра, кнопка плюс, кнопка минус. И этим блоком связать блоки записи и чтения часов.
Выставил параметр 0 - ничего не меняем.
Параметр 1 - меняем часы.
Параметр 2 - меняем минуты.
Параметр 3 - меняем секунды.
и т.д.
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15 дек 2016, 22:04
Откуда: Екатеринбург

Часы DS3231

Сообщение Nikito$ »

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

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

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

Часы DS3231

Сообщение Evgesha »

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

Добавлено (18.04.2017, 07:54)
---------------------------------------------
Nikito$,
В прикрепленном проекте нужная вам инфо
Denn4a
Рядовой
Сообщения: 19
Зарегистрирован: 23 янв 2017, 06:14

Часы DS3231

Сообщение Denn4a »

Мои часики!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Denn4a 18 апр 2017, 08:53, всего редактировалось 1 раз.
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15 дек 2016, 22:04
Откуда: Екатеринбург

Часы DS3231

Сообщение Nikito$ »

Прихожу к выводу,что проще получать с блока отдельно часы, минуты и секунды, тем более манипулировать байтами гораздо проще чем строкой
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15 дек 2016, 22:04
Откуда: Екатеринбург

Часы DS3231

Сообщение Nikito$ »

Цитата Boroda () Nikito$, сейчас блоки часов покрутил, подумал и пришел к выводу: чтоб сделать увеличение и уменьшение кнопками +\- надо очень сильно постараться. По хорошему надо блок пользователя сделать с тремя входами: номер параметра, кнопка плюс, кнопка минус. И этим блоком связать блоки записи и чтения часов. Выставил параметр 0 - ничего не меняем.
Параметр 1 - меняем часы.
Параметр 2 - меняем минуты.
Параметр 3 - меняем секунды.
и т.д.В продолжении темы установки. Нашел я свой старый проект где пробовал устанавливать время. Немного поправил, добавил возможность не только прибавлять единицу, но и отнимать её. И это, как ни странно, работает! Но на сколько данный подход правильный не совсем понятно  
Ссылка на проект: https://yadi.sk/d/aWzz58373H6MR4
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Nikito$ 18 апр 2017, 13:09, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

Ну от Switch можно избавиться, а на нулевой вход MUX посадить переменную ЧАС. И на каждую кнопку поставить элемент AND и подавать сигналы разрешения изменения.
Последний раз редактировалось Boroda 18 апр 2017, 14:11, всего редактировалось 1 раз.
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15 дек 2016, 22:04
Откуда: Екатеринбург

Часы DS3231

Сообщение Nikito$ »

Цитата Boroda () Ну от Switch можно избавиться, а на нулевой вход MUX посадить переменную ЧАС. И на каждую кнопку поставить элемент AND и подавать сигналы разрешения изменения. Ну да, так ещё проще, и главное работает))   Только на кнопки ставить ничего не нужно. При нажатии up или down у меня блокируется запись в переменную час (в неё записывается текущее время с блока получения) И при этом же нажатии разрешатся запись в переменную час.установка - эта переменная соединена с блоком установки времени.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Nikito$ 18 апр 2017, 14:52, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

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

Добавлено (18.04.2017, 15:09)
---------------------------------------------
Nikito$, теперь собирайте блок пользователя на FBD для прямой стыковки блоков Чтения и Записи времени.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

Nikito$, сейчас некогда возиться, набросок сделал, есть желание, можете добить доконца.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15 дек 2016, 22:04
Откуда: Екатеринбург

Часы DS3231

Сообщение Nikito$ »

Цитата Boroda () А если кнопок +/- только две, а нужно поменять часы, минуты, секунды, год и т.д?Ставим кнопку "селект" со счетчиком и по счетику разблокируем ANDы блоков изменения часов, минут, секунд и т.д.Это у меня уже реализовано   Вот по такому принципу. Далее буду мигание нужных разрядов добавлять)) 
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

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

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Evgesha
Лейтенант
Сообщения: 536
Зарегистрирован: 29 окт 2015, 09:57
Откуда: Kazakhstan
Имя: Evgesha

Часы DS3231

Сообщение Evgesha »

Boroda, как смотреть что подводится ?
Nikito$
Рядовой
Сообщения: 74
Зарегистрирован: 15 дек 2016, 22:04
Откуда: Екатеринбург

Часы DS3231

Сообщение Nikito$ »

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

Добавлено (18.04.2017, 16:46)
---------------------------------------------
Evgesha писал(а):Boroda, как смотреть что подводится ?
Видимо, нужно под часы, минуты и т.д отдельный блок дисплея. И включать и выключать его в зависимости от счётчика)
Последний раз редактировалось Nikito$ 18 апр 2017, 16:47, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Часы DS3231

Сообщение Boroda »

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

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

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

Добавлено (18.04.2017, 17:02)
---------------------------------------------
Nikito$, протестируйте пожалуйста. У меня просто ни индикатора, ни модуля часов нет.
Последний раз редактировалось Boroda 18 апр 2017, 17:01, всего редактировалось 1 раз.
Evgesha
Лейтенант
Сообщения: 536
Зарегистрирован: 29 окт 2015, 09:57
Откуда: Kazakhstan
Имя: Evgesha

Часы DS3231

Сообщение Evgesha »

Завтра попробую на железе.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя