Проблемы построения алгоритма работы таймера. Нужна помощь

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
VladimirBogdan
Рядовой
Сообщения: 8
Зарегистрирован: 01.02.2017{, 15:10}
Репутация: 0

Проблемы построения алгоритма работы таймера. Нужна помощь

#1

Сообщение VladimirBogdan » 01.02.2017{, 15:43}

Добрый день, использую FLprog в своих проектах, очень удобная программа. 
Практики маловато, вследствие чего столкнулся с проблемой. 
Помогите советом, заранее спасибо за ответы.

Делаю обыкновенный таймер, задача - отсчитать заданное количество времени , после чего прозвучит звуковой сигнал.

Вывожу время на панель Nextion, управление кнопочное.

Начальные переменные в полях минут и секунд соответственно( 0:0 ), кнопками задаётся количество минут и секунд, которые нужно отсчитать.

При составлении алгоритма использую блоки генератора, сравнения и счётчики. 
Для сброса счётчика использую блок сравнения с переменной типа Integer = 0.
Сбрасывать счётчик необходимо по достижению нулевого значения, чтобы заново отсчитывать минуты (имитация хода времени на таймере).
Главная проблема в том что манипуляции с блоком сравнения и 
переменной Integer = 0 приводит к тому, что начальные переменные "ломают" весь построенный алгоритм.

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

Спасибо.
Вложения
2925242.jpg

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 62
Контактная информация:

Проблемы построения алгоритма работы таймера. Нужна помощь

#2

Сообщение Олег » 01.02.2017{, 18:47}

Для начала гляньте здесь картинку к пятому комментарию.

VladimirBogdan
Рядовой
Сообщения: 8
Зарегистрирован: 01.02.2017{, 15:10}
Репутация: 0

Проблемы построения алгоритма работы таймера. Нужна помощь

#3

Сообщение VladimirBogdan » 02.02.2017{, 13:12}

Глянул, добавил промежуточные переменные. Не решило проблему.  

Ключевая проблема заключается в том, что что манипуляции с блоком сравнения и 
переменной Integer = 0 приводит к тому, что начальные переменные "ломают" весь построенный алгоритм.

Грубо говоря, нажатие кнопки сброса счётчика в 0, приводит к активизации блока сравнения и записи в табло "секунд" переменной с другим значением. Что в свою очередь ломает всю работу таймера.

Как лучше реализовать таймер?

Спасибо.

Аватара пользователя
kiyota
Рядовой
Сообщения: 97
Зарегистрирован: 18.02.2016{, 20:07}
Репутация: 2
Откуда: РОСТОВСКАЯ ОБЛ
Имя: Олег

Проблемы построения алгоритма работы таймера. Нужна помощь

#4

Сообщение kiyota » 02.02.2017{, 16:40}

VladimirBogdan  Дайте файл с вашим проектом попробую повозиться.
Последний раз редактировалось kiyota 02.02.2017{, 16:42}, всего редактировалось 1 раз.
kiyota

VladimirBogdan
Рядовой
Сообщения: 8
Зарегистрирован: 01.02.2017{, 15:10}
Репутация: 0

Проблемы построения алгоритма работы таймера. Нужна помощь

#5

Сообщение VladimirBogdan » 02.02.2017{, 17:03}

В приложении проект, на первой плате я реализовал отображение времени от модуля DS1307 на панель Nextion.
На второй плате реализован секундомер.
Следующая отвечает за переключение между режимами (Часы/Таймер/Секундомер)
На 4 плате я хочу сделать алгоритм работы таймера, в этом и проблема(((

Спасибо за помощь!!!
Вложения
1163350.flp
(608.76 КБ) 53 скачивания

Аватара пользователя
kiyota
Рядовой
Сообщения: 97
Зарегистрирован: 18.02.2016{, 20:07}
Репутация: 2
Откуда: РОСТОВСКАЯ ОБЛ
Имя: Олег

Проблемы построения алгоритма работы таймера. Нужна помощь

#6

Сообщение kiyota » 02.02.2017{, 19:38}

Простите,а часы реального времени , просто отображение текущего времени и в таймере они не участвуют ?
По подробнее о таймере (что от него требуется,диапазон,прямой или обратный отсчет ) и если можно файл от Nextion проекта .
kiyota

VladimirBogdan
Рядовой
Сообщения: 8
Зарегистрирован: 01.02.2017{, 15:10}
Репутация: 0

Проблемы построения алгоритма работы таймера. Нужна помощь

#7

Сообщение VladimirBogdan » 02.02.2017{, 20:39}

Часы реального времени в таймере не участвуют, просто отображают текущее время на первой странице панели.

Необходимо задавать на таймере Минуты, Секунды, потом нажать  кнопку (Пуск/Стоп),после чего таймер должен отсчитать заданное кол-во минут и секунд, после чего прозвенит пьезодинамик. + есть кнопка сброса.

В приложении файл для панели Nextion.

Добавлено (02.02.2017, 20:39)
---------------------------------------------
Файл
Вложения
_2.rar
(204.79 КБ) 54 скачивания
Последний раз редактировалось VladimirBogdan 02.02.2017{, 20:40}, всего редактировалось 1 раз.

Аватара пользователя
kiyota
Рядовой
Сообщения: 97
Зарегистрирован: 18.02.2016{, 20:07}
Репутация: 2
Откуда: РОСТОВСКАЯ ОБЛ
Имя: Олег

Проблемы построения алгоритма работы таймера. Нужна помощь

#8

Сообщение kiyota » 05.02.2017{, 19:26}

Уважаемый VladimirBogdan . Изучив ваш таймер , обнаружил следующее:
1)Входа с подтягивающим резистором, подразумевает их замыкание на GND , поэтому 
   их нужно инвертировать .
2)У вас минимальная единица времени 1 секунда , почему бы не взять её у RTC и убрать целых 
   два генератора.
3)Управление секундомером может быть сделать из панели?иначе таймер и секундомер включаются 
  одновременно от кнопки 2.
Ну в общем высылаю вам не много переделанный ваш проект. Будут вопросы спрашивайте всегда откликнусь .
Вложения
_3.7z
(276.82 КБ) 56 скачиваний
kiyota

VladimirBogdan
Рядовой
Сообщения: 8
Зарегистрирован: 01.02.2017{, 15:10}
Репутация: 0

Проблемы построения алгоритма работы таймера. Нужна помощь

#9

Сообщение VladimirBogdan » 07.03.2017{, 11:04}

Большое спасибо за помощь))) Всё very wonderful !!!

Ответить

Вернуться в «Спросить у знатоков»