Arco-systems.ru

Журнал Арко Системс
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Секундный таймер для розетки

Бесплатный таймер

Бесплатный, полнофункциональный и простой таймер для Windows

Программа Free Timer позволяет создавать таймеры обратного отсчета, которые отображают оставшееся время в виде цветного участка циферблата.

Вы можете установить время в секундах, минутах и ​​часах. Цветная часть циферблата будет отображать время, соответствующее заданному интервалу:

  • Если интервал составляет одну минуту или меньше, таймер считает в секундах (полный круг — 60 секунд).
  • Если интервал составляет один час или меньше, таймер считает в минутах (полный круг — 60 минут).
  • Если интервал составляет 12 часов или меньше, таймер считает в часах (полный круг — 12 часов).
  • Если интервал больше 12 часов, циферблат будет полностью покрыт указанным цветом. Что касается обратного отсчета, цветная секция будет постепенно уменьшаться в размере в соответствии с оставшимся временем.

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

Запускать несколько таймеров одновременно

Если вам нужно запустить несколько таймеров одновременно, вы можете просто запустить программу столько раз, сколько вам нужно. Вы также можете изменить цвета таймеров, чтобы отличать один таймер от другого.

Быстрый старт

Установите интервал и нажмите кнопку «Пуск». Когда Free Timer завершит обратный отсчет, выбранная вами музыка начнет воспроизводиться и таймер остановится.

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

Во весь экран

Free Timer имеет специальную кнопку для полноэкранного режима. Нажмите эту кнопку, и таймер увеличится до размеров монитора или проектора. Это особенно удобно во время экзаменов, тестов, отчетов, лабораторных экспериментов и так далее. Таймер будет виден из любой части классной комнаты или аудитории. Чтобы выйти из полноэкранного режима, нажмите кнопку Esc или нажмите на экран.

Предварительное уведомление

Вы можете включить метроном (который тикает каждую секунду), чтобы он включался за несколько секунд до окончания обратного отсчета. Например, установите метроном так, чтобы он начинался за одну минуту до окончания экзамена, чтобы привлечь внимание студентов.

Читать еще:  Переносная розетка с тремя

Бесплатный таймер обратного отсчета может воспроизводить музыкальные файлы

Вы можете выбрать звук, который вы хотите для таймера. Free Timer поставляется с несколькими звуками и предлагает полный доступ к вашей музыкальной библиотеке.

Запустите его с вашего портативного USB-накопителя

Вы можете сохранить Free Timer на флеш-накопителе и запустить его прямо оттуда. Таким образом, все ваши таймеры всегда будут с вами, настройки будут сохранены в файле Data.ini.
Скачать: Free Timer Portable.
Просто распакуйте его в любую папку, где вы хотите его сохранить, и запустите FreeTimer.exe, чтобы запустить программу.

Вам нужно больше информации? Взгляните на страницу помощи: Справка онлайн.

Программный многозадачный таймер на МК

В различного рода сложности реализуемых алгоритмов при программировании МК, всегда возникают рутинные циклические и не очень задачи. Одни требуют повышенной точности, другие таким критерием не обязаны обладать. Аппаратных таймеров на борту МК может быть приличное количество, например STM32F4 — аж 14 штук, и это не считая SysTick (системного), а в других и пара тройка за счастье: тот же PIC16, например.

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

Вместо предисловия

Спросим у ГУГЛА что он об этом думает?

Не задумываясь поисковик выдает примерно такой результат:

Предисловие

Как разработчик АСУ ТП, я часто программирую ПЛК различных фирм. Для любого ПЛК в среде разработки заготовлены библиотеки для программных таймеров. Почти все они имеют однотипную функциональность. Использование таймеров в программе ПЛК требуется во многих родах задачах, все их описывать смысла нет, поэтому я покажу пару примеров из АСУ ТП и эти примеры «грубо портируем» в данный модуль.

Мини ТЗ

Какого вида таймеры нужны в данном модуле? Я остановил выбор на четырех видах:

  • Таймер с задержкой на включение
  • Таймер с задержкой на выключение
  • Циклический таймер
  • Одиночный таймер

Первые два таймера явно перекочевали из АСУ ТП и программирования ПЛК. Два последних являются логическим расширением аппаратного таймера любого МК. Рассмотрим каждый вид таймера по отдельности.

Читать еще:  Розетка для унитаза что это такое
Таймер с задержкой на включение

Банальный пример такого таймера может служить реализация реле времени. На запускающий (управляющий) вход таймера приходит сигнал высокого (активного) уровня и таймер послушно начинает отсчет времени, по истечении которого и наличии активного уровня на входе переводит свой выход тоже в активное состояние. Как только мы снимем сигнал на входе таймера, выход также становиться неактивным. Временная диаграмма представлена ниже.

В мире МК данный таймер найдет себе применение если необходимо обеспечить антидребез «сухого» контакта, для детектирования длинного нажатия на клавишу и т.д. Сфера деятельности данного таймера явно этим не исчерпывается.

Таймер с задержкой на выключение

Таймер по сути аналогичен первому, но с логикой наоборот. Пока активный вход, активный и выход таймера. Как только на входе низкий уровень (не активный) таймер начинает обратный отсчет и по окончанию сбрасывает свой выход тоже в ноль. Вот его временная диаграмма.

Нужно это бывает, когда необходимо остановить задачу не одновременно с её «родителем», а немного позже. Данный вид таймера может показаться кому то экзотичном, при программировании МК, может и так, но как говорится пусть будет.

Циклический таймер

Ну тут все банально. Каждое переполнение данного таймера должно срабатывать событие, по которому выполняем ту или иную рутинную задачу. Опрос датчика инерционной среды, мигание светодиодом, говорящий нам что МК в «порядке», для организации равных промежутков времени для разного рода фильтров и т.д. Временная диаграмма ниже.

Одиночный таймер

Является почти полной копией циклического, за исключением того, что данный вид таймера сам себя выключает (останавливает) после срабатывания. То есть запустили, отсчитал свою задержку, установил флаг (указал на событие) и остановил себя. Вот его диаграмма.

Теперь все это реализуем в коде.

Модуль SwTimer

Название модуля говорит само за себя. Модуль состоит из двух файлов: хидера и сорца.

Данный хидер содержит дефайн, указывающий количество софтовых таймеров в массиве. Объявлен enum для «осознанного» описания режимов работы таймеров. Далее следует сама структура программного таймера. Единственное на что, хотелось бы обратить внимание, то что сам таймер является 24-х битным. В данной структуре это позволяет программному таймеру занимать место в 8 байт. 24 бита при переполнении аппаратного таймера в 1 мс позволяет достичь задержки в 4,66 часа или 16 777 секунд. Вполне достаточно.

Читать еще:  Как штриховать гипсовую розетку

Главная функция, обеспечивающая работу всего модуля:

Данная функция должна вызываться при переполнении аппаратного таймера. В ней организован весь алгоритм работы модуля. Заглянем в код:

В цикле проходимся по всему массиву таймеров. Если таймер пуст = EMPTY, то переходим к следующему таймеру. В зависимости от режима работы таймера организована своя логика.

Вызов данной функции можно организовывать как из прерывания аппаратного таймера, так и из цикла в основной программе по флагу.
Вот пример из прерывания для STM32.

А вот из основного цикла:

Данная функция устанавливает режим работы конкретного таймера, устанавливает необходимую задержку.

Считываем состояние статуса таймера. Возвращает -1, если указанный таймер пустой.

Применение

Проинициализируем несколько таймеров с разными режимами. В основном цикле используем на наше усмотрение:

Если необходимо остановить циклический или одиночный таймер, то необходимо сбросить бит включения и выставить бит отключения.

Повторное включение через установку запускающего бита On.

Считывание статуса можно производить как функцией, так и непосредственно считывая бит.

Если таймер больше не нужен, то сократить время выполнения функции обработки массива таймеров можно если не просто остановить таймер, а удалить его, то есть перевести в режим ПУСТО. Для этого вызываем функцию подготовки таймера с режимом SWTIMER_MODE_EMPTY. Или прямо это указываем.

Немного разные по смыслу первые два таймера и вторые два объединенны в одну структуру, дабы не плодить лишних функций и т.д. Модуль программных таймеров скачать можно отсюда.

Данная статья является переработанным материалом урока STM32. Уроки по программированию STM32F4. Урок № 4. Программный многозадачный таймер STM32F4. автором которого я и являюсь.

Видео, демонстрирующие функции данного модуля программного многозадачного таймера:

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector