Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Простой таймер на ATtiny

Простой таймер на ATtiny 02 янв 2017 17:17 #1

  • Ur5got
  • Ur5got аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 46
Soir, здравствуйте.
В Вашем арсенале таймеров случайно не найдется прошивки с описанным ниже простым алгоритмом работы (прототип схемы на любом из ATtiny13(45,85) прилагается)?

1. При включении питания на выводе 2 низкий уровень - светодиод погашен; на выводе 3 высокий уровень - звукового сигнала нет.

2. При однократном нажатии на кнопку S3 на выводе 2 появляется высокий уровень - светодиод горит.
При следующем однократном нажатии на кнопку S3 на выводе 2 появляется низкий уровень - светодиод гаснет.
На выводе 3 при нажатии кнопки S3 кратковременно появляется низкий уровень (озвучка нажатия).

3. При однократном нажатии на кнопку S1 на выводе 2 появляется высокий уровень на время, равное Т1 - светодиод горит. По истечении времени Т1 светодиод гаснет. Время Т1 (до 10 минут) хранится в EEPROM (чтобы его можно было изменить).
На выводе 3 при нажатии кнопки S1 кратковременно появляется низкий уровень (озвучка нажатия).
Последние пять секунд времени Т1 на выводе 3 происходит ежесекундное появление низкого уровня (сигнал, что через пять секунд светодиод погаснет).

4. При однократном нажатии на кнопку S2 на выводе 2 появляется высокий уровень на время, равное Т2 - светодиод горит. По истечении времени Т2 светодиод гаснет. Время Т2 (до 10 минут) хранится в EEPROM (чтобы его можно было изменить).
На выводе 3 при нажатии кнопки S2 кратковременно появляется низкий уровень (озвучка нажатия).
Последние пять секунд времени Т2 на выводе 3 происходит ежесекундное появление низкого уровня (сигнал, что через пять секунд светодиод погаснет).

Подключение кнопок и нагрузок к указанным выводам МК не принципиально.

Последнее редактирование: 02 янв 2017 17:18 от Ur5got.
Администратор запретил публиковать записи гостям.

Простой таймер на ATtiny 02 янв 2017 18:08 #2

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 6128
  • Спасибо получено: 2143
Что-то похожее было, но легче с нуля написать, чем искать и переделывать.

Какая дискретность установки времени таймеров?
Администратор запретил публиковать записи гостям.

Простой таймер на ATtiny 02 янв 2017 18:22 #3

  • Ur5got
  • Ur5got аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 46
5 секунд будет достаточно.
Администратор запретил публиковать записи гостям.

Простой таймер на ATtiny 02 янв 2017 18:38 #4

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 6128
  • Спасибо получено: 2143
А что должно быть, если во время отсчета таймера нажать кнопку? Опишите действия во всех таких случаях.

P.S.
Набросал проект.
Таймер 1 - ячейка EEPROM с адресом 0x00.
Таймер 2 - ячейка EEPROM с адресом 0x01.
Значения таймеров считываются из EEPROM и умножаются на 5. Если, например, нужно задать интервал времени 8 минут 50 сек, то в EEPROM следует записать число (8*60+50)/5 = 106 (или 0x6A в hex-формате). Записанное число не должно быть более 200, - иначе берется по умолчанию 12 (1 минута).

Нажатие на кнопку отменяет предыдущую программу и запускает новую.
Длительное нажатие (более 3 сек) на любую кнопку переводит устройство в первоначальное состояние.
Что не так - пишите.
В архиве проект в Proteus, прошивка и FUSE.
Вложения:
Последнее редактирование: 02 янв 2017 20:05 от Soir. Причина: Обновление прошивки.
Администратор запретил публиковать записи гостям.

Простой таймер на ATtiny 02 янв 2017 19:14 #5

  • Ur5got
  • Ur5got аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 46
Для режимов с таймером кратковременное нажатие - ничего не изменяет. Продолжительное нажатие (более 3 секунд) - сбрасывает таймер и переводит устройство в начальный режим - выходы выключены, ожидается нажатие кнопки.

Хотел проверить в железе, но не оказалось ни одной Tiny13. А насколько сложно адаптировать прошивку для Tiny45(85).

---
Сообщения объединил. Нарушение Правил, раздел 5, п.8
Soir.
Последнее редактирование: 02 янв 2017 20:20 от Soir. Причина: Нарушение правил.
Администратор запретил публиковать записи гостям.

Простой таймер на ATtiny 02 янв 2017 20:18 #6

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 6128
  • Спасибо получено: 2143
Attiny45
Вложения:
Администратор запретил публиковать записи гостям.

Простой таймер на ATtiny 02 янв 2017 21:48 #7

  • Ur5got
  • Ur5got аватар
  • Не в сети
  • I go sometimes
  • Сообщений: 46
Быстренько собрал макетку на Attiny45 - все работает как и требовалось. Длительное нажатие какой-либо из кнопок выключает любой из запущенных таймеров - удобно.
Как только найду Attiny13 - также проверю прошивку.

Soir, примного благодарен за помощь!
Администратор запретил публиковать записи гостям.
Модераторы: wolf2000, Vakula, Айнцвайдрайченко