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

ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 17:49:55
Beginner_AVR
Добрый вечер.

Имеется устройство со следующим алгоритмом:
1) при удержании тактовой кнопки в течение 5 секунд происходит включение устройства.
2) далее по коротким нажатиям изменяется одно значение (прибавляется 1)
3) при удержании тактовой кнопки в течение 15 секунд происходит выключение устройства.

В чем же, собственно, проблема? С дребезгом контактов и обработкой коротких нажатий проблем нет. Есть проблема с длинными нажатиями, как их обрабатывать в прерываниях таймера по COMPA? Как сделать так, чтобы во время обработки длинного нажатия не срабатывало короткое и после включения сразу не добавляло +1 к значению? Короткие нажатия проверяются только после длинного в 5 секунд, которое включает устройство.

Заранее спасибо за помощь.

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 18:25:25
Martian
[uquote="Beginner_AVR",url="/forum/viewtopic.php?p=4587825#p4587825"]Добрый вечер.
Как сделать так, чтобы во время обработки длинного нажатия не срабатывало короткое и после включения сразу не добавляло +1 к значению? .[/uquote]
Не добавлять после включения сразу.

Клик кнопки это два события: сначала нажатое, потом отжатое. Расстояние между этими двумя событиями и есть условие добавления чего либо. Какой отсюда вывод? Добавлять потом, после отжатия и если дельта удовлетворила условию.

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 18:35:16
Beginner_AVR
Martian, а можно примером кода, ибо мысленно я понимаю, а реализовать не получается

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 19:43:05
BOB51
удалено по настоятельной просьбе OKF
8)

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 19:56:15
Beginner_AVR
BOB51, наверное это все уже опробовано, поэтому и прошу пример кода, а не на словах. если бы работало, этой темы бы не создавал.

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:15:38
v1ct0r
Beginner_AVR, код для ардуино подойдет?
сможете адаптировать для себя?
если да, то попробую помочь

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:16:00
BOB51
удалено по настоятельной просьбе OKF
8)

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:19:22
Beginner_AVR
v1ct0r, попробую разобраться

Добавлено after 1 minute 16 seconds:
BOB51, напишите за меня программу - это когда просят полный алгоритм, у меня же проблема с маленьким кусочком, не равняйте, пожалуйста

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:27:23
BOB51
удалено по настоятельной просьбе OKF
8)

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:30:40
Beginner_AVR
BOB51, язык С, не первая моя прошивка, поэтому этих "мелочей" в дальнейшем быть не должно, все остальное уже реализовал, что хотел.

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:41:46
BOB51
удалено по настоятельной просьбе OKF
8)

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:42:55
Beginner_AVR
BOB51, gcc от микрочипстудии

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 20:48:18
BOB51
удалено по настоятельной просьбе OKF
8)

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 21:12:46
OKF
[uquote="Beginner_AVR",url="/forum/viewtopic.php?p=4587825#p4587825"]С дребезгом контактов и обработкой коротких нажатий проблем нет. Есть проблема с длинными нажатиями, как их обрабатывать в прерываниях таймера по COMPA? Как сделать так, чтобы во время обработки длинного нажатия не срабатывало короткое и после включения сразу не добавляло +1 к значению? Короткие нажатия проверяются только после длинного в 5 секунд, которое включает устройство.[/uquote]
Включаем логику. Короткое от длинного можно отличить только при отжатии. Что не очень удобно. Иначе, сначала будет короткое, а затем длинное. Решайте.

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 21:35:17
BOB51
удалено по настоятельной просьбе OKF
8)

Re: ATtiny13, 3 режима работы.

Добавлено: Ср июн 05, 2024 21:49:51
OKF
"Ты ему про Фому, а он тебе про Ерёму". Ардуинки/хуинки... Ужос.(

Re: ATtiny13, 3 режима работы.

Добавлено: Чт июн 06, 2024 09:36:16
>TEHb<
Что сейчас есть? Этот таймер считает время или это тоже предстоит организовать?

Re: ATtiny13, 3 режима работы.

Добавлено: Чт июн 06, 2024 10:18:55
Martian
тоже, судя по всему. Задача примитивная, измерить время между двумя событиями, если спрашивающий не может даже плохонькую реализацию сделать, значит, надо всё...
Я могу только словами для Атмела. Но, похоже, тут уже было, но удаляли.

Re: ATtiny13, 3 режима работы.

Добавлено: Чт июн 06, 2024 17:18:26
Beginner_AVR
Все, уже неактуально. Всем спасибо. Разобрался сам.

Re: ATtiny13, 3 режима работы.

Добавлено: Вт июн 11, 2024 06:53:38
Demiurg
Цикл статей Татарчевского. В этом цикле switch-case. Конечные автоматы. Программные таймеры. В 8 части рассказано, как сделать опрос кнопок. С удержанием, автоповтором.
Ваша хотелка это два конечных автомата. Один главный. Устройство. Второй автомат опроса кнопок.