roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 апр 2025, 05:45

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 17:37 
Не в сети

Зарегистрирован: 15 июн 2011, 17:34
Сообщения: 17
Откуда: Пятигорск
Здравствуте ВСЕ!Собираю на Дуине аква комьютер.Столкнулся с такой проблемой - нужно в определенное время включать нагрузку и в определенное выключать(допустим свет в аквариуме включить в 9:00 а выключить в 21:00).К ардуине подключенны часы на DS1307 и дисплей.
Вопрос такой как выполнить сравнение времени на которое установлен таймер и времени на данный момент?

_________________
Zonestar 802N (NA)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 18:02 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
время2-время1=разница :oops: :crazy: :) с утра так было


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 19:02 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Если время включает полную дату - тогда так :) иначе при переходе через сутки будет полная фигня :pardon:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 19:43 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2693
Откуда: Где-то в Латинской Америке
Там все в отдельных регистрах. Сравнить сначала десятки часов, если совпадают то единицы часов, десятки минут и единицы минут. Только они там в двоично - десятичном коде. Так что прийдется переводить, если задание срабатывания будет в дркгом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 20:35 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
за квант времени берём, допустим секунды и храним в секундах. за 0 принимаем 0ч 0мин 0сек 1января такого-то года. :) как хотите отнимайте, складывайте, из секунд получайте часы, минуты, дни, недели. и всё, никакой путаницы. если нормально хранить и учитывать базовый год и что в данный момент представляет из себя это кол-во секунд (дата-время или интервал времени), то проблем почти не будет. :oops: чтоб вообще не было, нужно учитывать ещё високосные года, но эт не сложно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:08 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Если нужна разница то да - лучше 1 раз написать функцию перевода времени в секунды и обратно и вычислять разницу в секундах.

Но ТС не нужно измерять разницу во времени. Ему нужно просто сделать что-то типа будильника. Сделать список событий и функцию добавления события в будильник в формате "событие, время", например
budilnik(LIGHT_ON, "21:00");
budilnik(LIGHT_OFF, "07:00");

и все. А МК будет пару раз в минуту проверять не наступило ли данное время, сравнивая указанное значение с тем, что будет прочитано из часов.
PS: Завтра как раз заберу заказик, где такие же часы с I2C, буду тоже их мучить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:15 
Не в сети

Зарегистрирован: 15 июн 2011, 17:34
Сообщения: 17
Откуда: Пятигорск
Scorpio писал(а):
Там все в отдельных регистрах. Сравнить сначала десятки часов, если совпадают то единицы часов, десятки минут и единицы минут. Только они там в двоично - десятичном коде. Так что прийдется переводить, если задание срабатывания будет в дркгом.

Я так и делал, просто уж больно громоздко получается много ифов.У меня время уже переведенное хранится в массиве - часы минуты секунды отдельно.Я думал можно как то проще сделать.

_________________
Zonestar 802N (NA)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:19 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Сделать отдельно функцию возращающую по отдельным компонентам даты и времени одно число - время в секундах с какой-то даты.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:23 
Не в сети

Зарегистрирован: 15 июн 2011, 17:34
Сообщения: 17
Откуда: Пятигорск
HarryStar писал(а):
Если нужна разница то да - лучше 1 раз написать функцию перевода времени в секунды и обратно и вычислять разницу в секундах.

Но ТС не нужно измерять разницу во времени. Ему нужно просто сделать что-то типа будильника. Сделать список событий и функцию добавления события в будильник в формате "событие, время", например
budilnik(LIGHT_ON, "21:00");
budilnik(LIGHT_OFF, "07:00");

и все. А МК будет пару раз в минуту проверять не наступило ли данное время, сравнивая указанное значение с тем, что будет прочитано из часов.
PS: Завтра как раз заберу заказик, где такие же часы с I2C, буду тоже их мучить.

Разница не нужна. Тут впринципе нужно вот такое условие которое нужно проверять раз в секунду if 9:00<x<21:00 только как это проще реализовать?

Добавлено спустя 1 минуту 48 секунд:
=DeaD= писал(а):
Сделать отдельно функцию возращающую по отдельным компонентам даты и времени одно число - время в секундах с какой-то даты.

Да наверное завтра так и попробую.

_________________
Zonestar 802N (NA)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:23 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Можно создать две переменные типа структура и сравнивать их.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:24 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
dccharacter писал(а):
Можно создать две переменные типа структура и сравнивать их.

Можно по какой-то причине пропустить момент совпадения и тогда всё, пиши пропало :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:27 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Вам не надо сравнивать больше или меньше. Вам нужно просто равенство. Это гораздо проще, тут надо сравнивать только часы и минуты и все. 2 IFа (и 1-2 строки конвертации из 16-10 формата). Наступило событие - выполняем его и выкидываем из очереди событий. Все. Никаких больше меньше.

Пропустить невозможно, т.к. проверка идет несколько раз в минуту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:32 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
2HarryStar, это общепринятый подход. всё остальное упрощение, оптимизация или просто изврат. :wink: в случае с аквакомпьютером это имхо изврат.
П.С. в смысле изврат вообще. всё начнается вот с таких простеньких проблем, когда нужно писать "велосипед". заканчивается тем, что в общем такой аквакомпьютер выйдет "слегка" примитивный простенький, а делать его будут сипец как долго. +есть проекты аквакомпьютеров (на соответствующих форумах) - можно скачать схему, прошивку и просто начать использовать. а заново велосипед изобретать, причём не дотягивающий или такого же уровня смысла мало.


Последний раз редактировалось Angel71 15 июн 2011, 21:49, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:46 
Не в сети

Зарегистрирован: 15 июн 2011, 17:34
Сообщения: 17
Откуда: Пятигорск
Angel71 писал(а):
2HarryStar, это общепринятый подход. всё остальное упрощение, оптимизация или просто изврат. :wink: в случае с аквакомпьютером это имхо изврат.
П.С. в смысле изврат вообще. всё начнается вот с таких простеньких проблем, когда нужно писать "велосипед". заканчивается тем, что в общем такой аквакомпьютер выйдет "слегка" примитивный простенький, а делать его будут сипец как долго.

Да я уже и так нагородил.Хотел сначала просто таймер включения выключения сделать.А получилось несколько таймеров для включения 4 нагрузок в разное время,Термостабилизатор с подключенным охдадителем и нагревателем, и ко всему этому прикрутил дисплей с неким подобием меню.А да и еще все необходимые значения сохраняются в ПЗУ.

_________________
Zonestar 802N (NA)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Таймер с часами реального времени.
СообщениеДобавлено: 15 июн 2011, 21:56 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
ээээээээ, а чего только с таймеров? :oops: вы инет до этого на тему аквакомпьютеров вообще шерстили? на всевозможных аквафорумах проекты неоднократно попадались и таки весьма функциональные железки в итоге получались у людей. :oops: но имхо всё-равно простенькие. :) как по мне намного функциональней и не сильно дороже подобная автоматика получается на платах, начиная с уровня mini2440. нормальный экран (в сравнении с символьным), тач, много памяти, возможность писать код в среде с более богатыми готовыми библиотеками + еще много всяких плюшек.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO