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

Часы DS3231

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

Часы DS3231

Добавлено: 17.04.2017{, 22:13}
igori1ok
Часы реального времени- Установка времени

Часы DS3231

Добавлено: 17.04.2017{, 22:44}
Boroda
Nikito$, если все данные стоят на определенных местах, то тогда можно сделать получением подстроки. Если данные постоянно двигаются, то уже сложнее, надо пользоваться поиском подстроки...


Часы DS3231

Добавлено: 17.04.2017{, 22:56}
support
Ну вообще то есть блок "Получение данных с часов реального времени". Там ставите галочки 'Выход часы'...... и т. д. И получаете необходимые значения в виде цифр

Часы DS3231

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

Часы DS3231

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

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

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

Часы DS3231

Добавлено: 18.04.2017{, 07:54}
Evgesha
http://forum.flprogwiki.ru/viewtopic.php?f=18&t=2044

Добавлено (18.04.2017, 07:54)
---------------------------------------------
Nikito$,
В прикрепленном проекте нужная вам инфо

Часы DS3231

Добавлено: 18.04.2017{, 08:52}
Denn4a
Мои часики!

Часы DS3231

Добавлено: 18.04.2017{, 10:27}
Nikito$
Прихожу к выводу,что проще получать с блока отдельно часы, минуты и секунды, тем более манипулировать байтами гораздо проще чем строкой

Часы DS3231

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

Часы DS3231

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

Часы DS3231

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

Часы DS3231

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

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

Часы DS3231

Добавлено: 18.04.2017{, 15:44}
Boroda
Nikito$, сейчас некогда возиться, набросок сделал, есть желание, можете добить доконца.

Часы DS3231

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

Часы DS3231

Добавлено: 18.04.2017{, 16:21}
Boroda
Вот блок на СИ наваял.


Часы DS3231

Добавлено: 18.04.2017{, 16:42}
Evgesha
Boroda, как смотреть что подводится ?

Часы DS3231

Добавлено: 18.04.2017{, 16:46}
Nikito$
Boroda писал(а):Вот блок на СИ наваял.
Ух, ты)) Круто! Он в работе тестировался??

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

Часы DS3231

Добавлено: 18.04.2017{, 17:02}
Boroda
Evgesha, из описания блока:

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

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

Добавлено (18.04.2017, 17:02)
---------------------------------------------
Nikito$, протестируйте пожалуйста. У меня просто ни индикатора, ни модуля часов нет.

Часы DS3231

Добавлено: 18.04.2017{, 17:14}
Evgesha
Завтра попробую на железе.